Simples MotionBlur von Vertex |
Hi! Ja es ist ja möglich, auf Texturen zu rendern, und die Sprite mit Alpha über den ganzen Bildschirm anzuzeigen. Das habe ich mir mal zu nutze gemacht, und ein MotionBlur Example erstellt. Achtet auf die kleine Textur größe, sonst wird es zu viel Performence kosten. [code:1:9b51b369e9] Graphics3D 640,480,32,2 SetBuffer BackBuffer() Cube = CreateCube() Camera = CreateCamera() PositionEntity Camera,0,5,-10 Light = CreateLight(1,Camera) Dim Sprite(10) : Dim Texture(10) For I = 10 To 0 Step -1 Sprite(I) = CreateSprite(Camera) ScaleSprite Sprite(I),640,480 PositionEntity Sprite(I),0,0,640 EntityAlpha Sprite(I),0.8 - I / 2.0 EntityOrder Sprite(I),1 Texture(I) = CreateTexture(256,256,256) EntityTexture Sprite(I),Texture(I) Next While Not KeyDown(1) Frame = Frame + 1 TurnEntity Cube,2,4,1 Y = Y + 1 : PositionEntity Cube,0,Abs(Cos(Y) * 10),0 MoveEntity Cube,0,1,4 UpdateWorld If Frame > 2 Then Frame = 0 For I = 10 To 1 Step - 1 Texture(I) = Texture(I - 1) Next CameraViewport Camera,0,0,256,256 RenderWorld : CopyRect 0,0,256,256,0,0,BackBuffer(),TextureBuffer(Texture(0)) CameraViewport Camera,0,0,640,480 EndIf RenderWorld : Flip Wend [/code:1:9b51b369e9] Ihr könnt das praktishc mit jeder Szene machen, müsst nur darauf achten, das ihr die richtige Auflösung beim Berechnen mit einbezieht. mfg olli |