3D Script von Steptiger verbessert (?) ... nur Problem
Übersicht

![]() |
ChriseBetreff: 3D Script von Steptiger verbessert (?) ... nur Problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leute!
Ich habe letztens mal wieder die 3D Brillen rausgekramt und mir ist da eingefallen, das es da noch den Skript gab, den Steptiger gemacht hatte. Mir ist nur aufgefallen, das einfach das gerendete Bild verschoben wurde und kein 3D Effekt durch Kameraverschiebung entstand. Bzw. war das der Fall bei einem weiter unten geposteten Beispielcode. Jetzt hab ich mich ein bisschen hingesetzt und rumprobiert wie man das ändern könnte. Und habs geschafft, juhu! Das einzige Problem ist jetzt, wenn man mit den Richtungstasten die Kameraposition verschiebt, manchmal Fehler im Bild auftauchen. Wie z.b. das plötzlich alles Grau ist, oder nur eine Kameraposition durch den Filter sichtbar ist. Weiß jemand an was das liegt? Danke für hilfe, hier der Code: EDIT: LOOOL Mir ist der Fehler aufgefallen... so klein und unbemerkt. Der Filter war zu nahe an der Camera, das er bei der render ungenauigkeit kurzzeitig nicht sichtbar war. Hab den ausgebesserten Code bearbeitet: (Was fürs Codearchiv???) Code: breite=800
hoehe=600 Graphics3D breite,hoehe,32,1 SetBuffer BackBuffer() rtex=CreateTexture(GraphicsWidth(),GraphicsHeight(),48) gbtex=CreateTexture(GraphicsWidth(),GraphicsHeight(),48) ;800*600 If breite=800 And hoehe=600 Then versch#=0.4;die verschiebung in pixel (je nach fenstergröße verschieden) sclx#=6.4; die skalierung in richtung x scly#=6.4; die skalierung in richtung y difx#=1.38; feinverschiebung in x richtung dify#=-2.65; feinverschiebung in y richtung difz#=0; feinverschiebung in z richtung EndIf ;1024*768 If breite=1024 And hoehe=768 Then versch#=0.5;die verschiebung in pixel (je nach fenstergröße verschieden) sclx#=7.1; die skalierung in richtung x scly#=7.1; die skalierung in richtung y difx#=0; feinverschiebung in x richtung dify#=-1.7; feinverschiebung in y richtung difz#=2; feinverschiebung in z richtung EndIf ;1280*1024 If breite=1280 And hoehe=1024 Then versch#=0.6;die verschiebung in pixel (je nach fenstergröße verschieden) sclx#=8; die skalierung in richtung x scly#=4; die skalierung in richtung y difx#=3; feinverschiebung in x richtung dify#=0.1; feinverschiebung in y richtung difz#=0; feinverschiebung in z richtung EndIf screencamversch#=2000 farbe1=255 farbe2=255 farbe3=155 lichtstaerke=55 ;box=LoadMesh("mesh1.3ds") box=CreateCube() PositionEntity box,0,0,12 ;EntityAlpha box,.4 EntityShininess box,1 ;Tex1=LoadTexture("textur1.png") ;EntityTexture box,Tex1 cam=CreateCamera() screencam=CreateCamera() PositionEntity cam,0,0,5 PositionEntity screencam,0,screencamversch#,-5 light=CreateLight() LightColor light,lichtstaerke,lichtstaerke,lichtstaerke PositionEntity light,0,0,1 RotateEntity light,0,0,90 AmbientLight farbe3,farbe3,farbe3 filter=CreateCube() ScaleEntity filter,600,600,0.01 EntityFX filter,1 EntityBlend filter,3 screen=CreateCube() ScaleEntity screen,sclx#,scly#,0.01 EntityColor screen,255,255,255 EntityFX screen,1 TextureBlend rtex,2 TextureBlend gbtex,2 EntityTexture screen,rtex,0,0 EntityTexture screen,gbtex,0,1 PositionEntity filter,0,0,6.0101 PositionEntity screen,difx#,screencamversch#+dify#,difz# Pivot1=CreatePivot() parent=1 EntityParent cam,pivot1,parent EntityParent filter,pivot1,parent frameTimer=CreateTimer(25) CameraClsColor cam,255,255,255 ;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ ;-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- ;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ ;-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- While Not KeyDown(1) Cls CameraProjMode cam,1 CameraProjMode screencam,0 MoveEntity pivot1,versch#,0,0 EntityColor filter,farbe1,0,0 RenderWorld CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),0,0,BackBuffer(),TextureBuffer(rtex) MoveEntity pivot1,-versch#,0,0 EntityColor filter,0,farbe2,farbe2 RenderWorld CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),0,0,BackBuffer(),TextureBuffer(gbtex) CameraProjMode screencam,1 CameraProjMode cam,0 WaitTimer (frameTimer) UpdateWorld RenderWorld Flip If KeyDown(200) Then TranslateEntity pivot1,0,0,0.05,1 If KeyDown(208) Then TranslateEntity pivot1,0,0,-0.05,1 If KeyDown(203) Then TurnEntity pivot1,0,1,0 If KeyDown(205) Then TurnEntity pivot1,0,-1,0 TurnEntity box,1.5,1,0.5 Wend FreeTimer frameTimer |
||
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group