Example #1
0
        // for testing only
        void FrustrumCulling_WriteNextFrameEvent()
        {
            SetupFrustrum();

            IGraphicsHelper g = GraphicsHelperFactory.GetInstance();

            /*
             * g.SetMaterialColor(new Color(1, 1, 0));
             * Gl.glBegin(Gl.GL_LINES);
             * g.Vertex(camerapos + viewray * 0.51 + HNear / 2 * 0.95 * right + VNear / 2 * 0.95 * up);
             * g.Vertex(camerapos + viewray * 0.51 - HNear / 2 * 0.95 * right + VNear / 2 * 0.95 * up);
             * Gl.glEnd();
             * Gl.glBegin(Gl.GL_LINES);
             * g.Vertex(camerapos + viewray * 0.51 - HNear / 2 * 0.95 * right - VNear / 2 * 0.95 * up);
             * g.Vertex(camerapos + viewray * 0.51 + HNear / 2 * 0.95 * right - VNear / 2 * 0.95 * up);
             * Gl.glEnd();
             */

            g.SetMaterialColor(new Color(1, 0, 1));
            Gl.glBegin(Gl.GL_LINES);
            g.Vertex(camerapos + viewray * 1050 + HFar / 2 * 0.95 * right + VFar / 2 * 0.95 * up);
            g.Vertex(camerapos + viewray * 1050 - HFar / 2 * 0.95 * right + VFar / 2 * 0.95 * up);
            Gl.glEnd();
            Gl.glBegin(Gl.GL_LINES);
            g.Vertex(camerapos + viewray * 1050 - HFar / 2 * 0.95 * right - VFar / 2 * 0.95 * up);
            g.Vertex(camerapos + viewray * 1050 + HFar / 2 * 0.95 * right - VFar / 2 * 0.95 * up);
            Gl.glEnd();

            g.SetMaterialColor(new Color(1, 0, 0));
            Gl.glBegin(Gl.GL_LINES);
            g.Vertex(viewray * 10);
            g.Vertex(viewray * 100);
            Gl.glEnd();

            g.SetMaterialColor(new Color(0, 1, 0));
            Gl.glBegin(Gl.GL_LINES);
            g.Vertex(viewray * 10);
            g.Vertex(viewray * 10 + right * 100);
            Gl.glEnd();

            g.SetMaterialColor(new Color(0, 0, 1));
            Gl.glBegin(Gl.GL_LINES);
            g.Vertex(viewray * 10);
            g.Vertex(viewray * 10 + up * 100);
            Gl.glEnd();

            g.SetMaterialColor(new Color(0, 1, 1));
            for (int i = 0; i < 6; i++)
            {
                Gl.glBegin(Gl.GL_LINES);
                g.Vertex(planes[i].point + viewray * 100);
                g.Vertex(planes[i].point + planes[i].normalizednormal * 100 + viewray * 100);
                Gl.glEnd();
            }

            //Console.WriteLine( CheckObject(camerapos - 3 * viewray, 2) );
            //System.Environment.Exit(0);
        }
Example #2
0
        // for testing only
        void FrustrumCulling_WriteNextFrameEvent(Vector3 camerapos)
        {
            SetupFrustrum();

            IGraphicsHelper g = GraphicsHelperFactory.GetInstance();

            g.SetMaterialColor(new Color(1, 1, 0));
            Gl.glBegin(Gl.GL_LINES);
            g.Vertex(camerapos + viewray * nearclip * 1.1 + HNear / 2 * 0.95 * right + VNear / 2 * 0.95 * up);
            g.Vertex(camerapos + viewray * nearclip * 1.1 - HNear / 2 * 0.95 * right + VNear / 2 * 0.95 * up);
            Gl.glEnd();
            Gl.glBegin(Gl.GL_LINES);
            g.Vertex(camerapos + viewray * nearclip * 1.1 - HNear / 2 * 0.95 * right - VNear / 2 * 0.95 * up);
            g.Vertex(camerapos + viewray * nearclip * 1.1 + HNear / 2 * 0.95 * right - VNear / 2 * 0.95 * up);
            Gl.glEnd();


            g.SetMaterialColor(new Color(1, 0, 1));
            Gl.glBegin(Gl.GL_LINES);
            g.Vertex(camerapos + viewray * farclip * 0.95 + HFar / 2 * 0.95 * right + VFar / 2 * 0.9 * up);
            g.Vertex(camerapos + viewray * farclip * 0.95 - HFar / 2 * 0.95 * right + VFar / 2 * 0.9 * up);
            Gl.glEnd();
            Gl.glBegin(Gl.GL_LINES);
            g.Vertex(camerapos + viewray * farclip * 0.95 - HFar / 2 * 0.95 * right - VFar / 2 * 0.9 * up);
            g.Vertex(camerapos + viewray * farclip * 0.95 + HFar / 2 * 0.95 * right - VFar / 2 * 0.9 * up);
            Gl.glEnd();

            /*
             * g.SetMaterialColor(new Color(1, 0, 0));
             * Gl.glBegin(Gl.GL_LINES);
             * g.Vertex(viewray * 10);
             * g.Vertex(viewray * 100);
             * Gl.glEnd();
             *
             * g.SetMaterialColor(new Color(0, 1, 0));
             * Gl.glBegin(Gl.GL_LINES);
             * g.Vertex(viewray * 10);
             * g.Vertex(viewray * 10 + right * 100);
             * Gl.glEnd();
             *
             * g.SetMaterialColor(new Color(0, 0, 1));
             * Gl.glBegin(Gl.GL_LINES);
             * g.Vertex(viewray * 10);
             * g.Vertex(viewray * 10 + up * 100);
             * Gl.glEnd();
             *
             * g.SetMaterialColor(new Color(0, 1, 1));
             * for (int i = 0; i < 6; i++)
             * {
             *  Gl.glBegin(Gl.GL_LINES);
             *  g.Vertex(planes[i].point + viewray * 100);
             *  g.Vertex(planes[i].point + planes[i].normalizednormal * 100 + viewray * 100);
             *  Gl.glEnd();
             * }
             */

            //Console.WriteLine( camerapos + " " + viewray );
            //Console.WriteLine( IsInsideFrustum( camerapos + viewray * nearclip * 1.5, 0 ) );
            //Console.WriteLine( IsInsideFrustum( camerapos + viewray * farclip * 0.9, 0 ) );
            //System.Environment.Exit( 0 );
        }