public void Redraw() { context.ClearDepthStencilView(DepthStencilView, DepthStencilClearFlags.Depth | DepthStencilClearFlags.Stencil, 1.0f, 0); context.ClearRenderTargetView(renderTargetView, Color.White); var psBuffer = new PSBuffer(); psBuffer.SurfaceColor = new Vector4(0, 0, 1, 1); psBuffer.LightPosition = new Vector4(0, 100, 0, 1); context.UpdateSubresource(ref psBuffer, this.psBuffer); Camera.UpdatePosition(); var vsBuffer = new VSBuffer(); vsBuffer.View = Camera.ViewMatrix; vsBuffer.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 3f, viewport.Width / (float)viewport.Height, 0.5f, 100f); vsBuffer.InvView = Camera.InverseViewMatrix; vsBuffer.World = Matrix.Identity; var now = DateTime.Now; var timeDiff = now - lastComputeTime; lastComputeTime = now; for (int i = 0; i < 100; i++) { bezierCube.Update((float)timeDiff.TotalMilliseconds / 100000); } //bezierCube.Update((float)timeDiff.TotalMilliseconds / 1000); context.VertexShader.Set(_vertexShader); cube.Render(context, vsBuffer, this.vsBuffer); bezierCube.Render(context, vsBuffer, this.vsBuffer); boundingBox.Render(context, vsBuffer, this.vsBuffer); mesh.Render(context, vsBuffer, this.vsBuffer); sphere.Render(context, vsBuffer, this.vsBuffer); swapChain.Present(1, PresentFlags.None); }