public void Render() { // GL.Disable(EnableCap.Blend); Active = this; RBuf.Bind(); GL.ClearColor(0, 0, 0, 1); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); Scene.Render(); RBuf.Release(); GL.Disable(EnableCap.Blend); FB.Bind(); GL.ClearColor(0, 0, 0, 1); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); Scene.Render(); FB.Release(); GL.Disable(EnableCap.Blend); PBuf = RBuf; //GL.DrawBuffer(DrawBufferMode.Back); foreach (VPostProcess p in Processes) { //FB2.Bind ( ); p.Bind(FB.BB); FB2.Bind(); p.Render(FB.BB); FB2.Release(); p.Release(FB.BB); FrameBufferColor ob = null; if (p.NeedsPostRender) { p.PostBind(FB2.BB); ob = FB; FB = FB2; FB2 = ob; FB2.Bind(); p.PostRender(FB.BB); FB2.Release(); FB2.Release(); } ob = FB; FB = FB2; FB2 = ob; //PBuf = FB; } // GL.Viewport(0, 0, 1024, 768); GL.Disable(EnableCap.Blend); GL.ClearColor(1.0f, 0.8f, 0.8f, 0.8f); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); DrawQuad(); }
public override void DrawState() { int move = 8; if (VInput.KeyIn(OpenTK.Input.Key.ShiftLeft)) { move = 12; } if (VInput.KeyIn(OpenTK.Input.Key.W)) { cam1.Move(new OpenTK.Vector3(0, 0, -move), Space.Local); } if (VInput.KeyIn(OpenTK.Input.Key.A)) { cam1.Move(new OpenTK.Vector3(-move, 0, 0), Space.Local); } if (VInput.KeyIn(OpenTK.Input.Key.D)) { cam1.Move(new OpenTK.Vector3(move, 0, 0), Space.Local); } if (VInput.KeyIn(OpenTK.Input.Key.S)) { cam1.Move(new OpenTK.Vector3(0, 0, move), Space.Local); } if (VInput.MB[0]) { light1.LocalPos = cam1.LocalPos; } int xd, yd; if (firstd) { lx = VInput.MX; ly = VInput.MY; firstd = false; } xd = VInput.MX - lx; yd = VInput.MY - ly; lx = VInput.MX; ly = VInput.MY; cam1.Turn(new OpenTK.Vector3(yd, xd, 0), Space.Local); scene3d.Render(); UI.Render(); }
public void Render() { FB.Bind(); Scene.Render(); FB.Release(); //GL.DrawBuffer(DrawBufferMode.Back); foreach (var p in Processes) { FB2.Bind(); p.Bind(FB.BB); p.Render(FB.BB); p.Release(FB.BB); FB2.Release(); var ob = FB; FB = FB2; FB2 = ob; } // GL.Viewport(0, 0, 1024, 768); DrawQuad(); }
private void DrawFace(int i) { var face = FB.SetFace(i); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); switch (face) { case TextureTarget.TextureCubeMapPositiveX: Cam.LookAtZero(new Vector3(1, 0, 0), new Vector3(0, 1, 0)); break; case TextureTarget.TextureCubeMapNegativeX: Cam.LookAtZero(new Vector3(-1, 0, 0), new Vector3(0, 1, 0)); break; case TextureTarget.TextureCubeMapPositiveY: Cam.LookAtZero(new Vector3(0, 10, 0), new Vector3(1, 0, 0)); break; case TextureTarget.TextureCubeMapNegativeY: Cam.LookAtZero(new Vector3(0, -10, 0), new Vector3(1, 0, 0)); break; case TextureTarget.TextureCubeMapPositiveZ: Cam.LookAtZero(new Vector3(0, 0, 10), new Vector3(0, 1, 0)); break; case TextureTarget.TextureCubeMapNegativeZ: Cam.LookAtZero(new Vector3(0, 0, -10), new Vector3(0, 1, 0)); break; } Scene.CamOverride = Cam; Scene.Render(); Scene.CamOverride = null; FB.Release(); }