Exemple #1
0
        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();
        }
Exemple #2
0
        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();
 }
Exemple #4
0
        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();
        }