glBegin() private method

private glBegin ( uint mode ) : void
mode uint
return void
示例#1
0
        private void DrawSea()
        {
            GL.glDisable(GL.GL_LIGHTING);
            float dup = GlobalProperties.seaDuplicates;

            GL.glEnable(GL.GL_TEXTURE_2D);
            GL.glColor4f(1.0f, 1.0f, 1.0f, 0.3f);

            GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]);
            GL.glBegin(GL.GL_QUADS);

            float cor = GlobalProperties.seaSize / 2;

            GL.glTexCoord2f(0, 0);
            GL.glVertex3f(-cor, -cor, 0.0f);
            GL.glTexCoord2f(0, dup);
            GL.glVertex3f(cor, -cor, 0.0f);
            GL.glTexCoord2f(dup, dup);
            GL.glVertex3f(cor, cor, 0.0f);
            GL.glTexCoord2f(dup, 0);
            GL.glVertex3f(-cor, cor, 0.0f);

            GL.glEnd();
            GL.glDisable(GL.GL_TEXTURE_2D);
            GL.glEnable(GL.GL_LIGHTING);
        }
示例#2
0
        void DrawFigures()
        {
            GL.glEnable(GL.GL_COLOR_MATERIAL);
            GL.glEnable(GL.GL_LIGHT0);
            GL.glEnable(GL.GL_LIGHTING);

            //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            GL.glRotatef(ROBOT_angle, 0, 0, 1);
            GL.glCallList(ROBOT_LIST);
            //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

            // saw
            GL.glLineStipple(1, 0x1243);
            GL.glLineWidth(3);
            GL.glEnable(GL.GL_LINE_STIPPLE);

            GL.glColor3f(1, 1, 0);  //yellow
            GL.glBegin(GL.GL_LINES);
            float angle;

            for (int i = 0; i <= 9; i++)
            {
                angle = alpha + i * 6.283f / 10;
                GL.glVertex3d(0.5f * r * Math.Cos(angle), 0.5f * r * Math.Sin(angle), 0.01f);
                GL.glVertex3d(1.5f * r * Math.Cos(angle + 0.6), 1.5f * r * Math.Sin(angle + 0.6), 0.01f);
            }
            GL.glEnd();
            GL.glLineWidth(1);
            GL.glDisable(GL.GL_LINE_STIPPLE);
        }
示例#3
0
        void drawFloor()
        {
            GL.glEnable(GL.GL_LIGHTING);

            GL.glPushMatrix();
            GL.glColor3d(0, 1, 0);
            GL.glTranslated(0, -0.01, 0);

            float[] grass_ambuse    = { 0.03f, 0.56f, 0.19f, 1.0f };
            float[] grass_specular  = { 0.0f, 0.0f, 0.0f, 1.0f };
            float[] grass_shininess = { 10 };

            GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_AMBIENT_AND_DIFFUSE, grass_ambuse);
            GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_SPECULAR, grass_specular);
            GL.glMaterialfv(GL.GL_FRONT_AND_BACK, GL.GL_SHININESS, grass_shininess);

            GL.glBegin(GL.GL_QUADS);

            GL.glNormal3f(0, 1, 0);
            GL.glVertex3f(-200, 0, -200);
            GL.glVertex3f(-200, 0, 200);
            GL.glVertex3f(200, 0, 200);
            GL.glVertex3f(200, 0, -200);
            GL.glEnd();

            GL.glDisable(GL.GL_LIGHTING);
            GL.glPopMatrix();
        }
示例#4
0
        protected void DrawOldAxes()
        {
            if (enableDefaultCoordSystem)
            {
                GL.glEnable(GL.GL_LINE_STIPPLE);
                GL.glLineStipple(1, 0xFF00);
                GL.glBegin(GL.GL_LINES);

                //X - Red
                GL.glColor3f(1.0f, 0.0f, 0.0f);
                GL.glVertex3f(0.0f, 0.0f, 0.0f);
                GL.glVertex3f(10.0f, 0.0f, 0.0f);

                //Y - Greed
                GL.glColor3f(0.0f, 1.0f, 0.0f);
                GL.glVertex3f(0.0f, 0.0f, 0.0f);
                GL.glVertex3f(0.0f, 10.0f, 0.0f);

                //Z - Blue
                GL.glColor3f(0.0f, 0.0f, 1.0f);
                GL.glVertex3f(0.0f, 0.0f, 0.0f);
                GL.glVertex3f(0.0f, 0.0f, 10.0f);

                GL.glEnd();
                GL.glDisable(GL.GL_LINE_STIPPLE);
            }
        }
示例#5
0
        protected void DrawHand()
        {
            GL.glColor3d(1, 0.8, 0.6);

            GL.glBegin(GL.GL_QUADS);

            //Near
            GL.glVertex3d(-3.0, 2.0, 0.5);
            GL.glVertex3d(3.0, 2.0, 0.5);
            GL.glVertex3d(3.0, -2.0, 0.5);
            GL.glVertex3d(-3.0, -2.0, 0.5);

            //Far
            GL.glVertex3d(-3.0, 2.0, -0.5);
            GL.glVertex3d(3.0, 2.0, -0.5);
            GL.glVertex3d(3.0, -2.0, -0.5);
            GL.glVertex3d(-3.0, -2.0, -0.5);

            //Left
            GL.glVertex3d(-3.0, 2.0, -0.5);
            GL.glVertex3d(-3.0, 2.0, 0.5);
            GL.glVertex3d(-3.0, -2.0, 0.5);
            GL.glVertex3d(-3.0, -2.0, -0.5);

            //Right
            GL.glVertex3d(3.0, 2.0, 0.5);
            GL.glVertex3d(3.0, 2.0, -0.5);
            GL.glVertex3d(3.0, -2.0, -0.5);
            GL.glVertex3d(3.0, -2.0, 0.5);

            GL.glEnd();
        }
示例#6
0
        void DrawOldAxes()
        {
            //for this time
            //Lights positioning is here!!!
            float [] pos = new float[4];
            pos[0] = 10; pos[1] = 10; pos[2] = 10; pos[3] = 1;
            GL.glLightfv(GL.GL_LIGHT0, GL.GL_POSITION, pos);
            GL.glDisable(GL.GL_LIGHTING);

            //INITIAL axes
            GL.glEnable(GL.GL_LINE_STIPPLE);
            GL.glLineStipple(1, 0xFF00);   //  dotted
            GL.glBegin(GL.GL_LINES);
            //x  RED
            GL.glColor3f(1.0f, 0.0f, 0.0f);
            GL.glVertex3f(-3.0f, 0.0f, 0.0f);
            GL.glVertex3f(3.0f, 0.0f, 0.0f);
            //y  GREEN
            GL.glColor3f(0.0f, 1.0f, 0.0f);
            GL.glVertex3f(0.0f, -3.0f, 0.0f);
            GL.glVertex3f(0.0f, 3.0f, 0.0f);
            //z  BLUE
            GL.glColor3f(0.0f, 0.0f, 1.0f);
            GL.glVertex3f(0.0f, 0.0f, -3.0f);
            GL.glVertex3f(0.0f, 0.0f, 3.0f);
            GL.glEnd();
            GL.glDisable(GL.GL_LINE_STIPPLE);
        }
示例#7
0
        private void drawSquareSurface(float width, float height, float depth, eAxis axis)
        {
            GL.glBegin(GL.GL_QUADS);

            // if there is no texture bind, the glTexCoord2f do nothing
            switch (axis)
            {
            case eAxis.X:
                GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(width, 0, 0);
                GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(width, 0, depth);
                GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(width, height, depth);
                GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(width, height, 0);
                break;

            case eAxis.Y:
                GL.glVertex3f(0, height, 0);
                GL.glVertex3f(0, height, depth);
                GL.glVertex3f(width, height, depth);
                GL.glVertex3f(width, height, 0);
                break;

            case eAxis.Z:
                GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(0, 0, depth);
                GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(0, height, depth);
                GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(width, height, depth);
                GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(width, 0, depth);
                break;
            }

            GL.glEnd();
        }
示例#8
0
文件: cOGL.cs 项目: matanmaron/Tanks
        void DrawMirror(bool screen)
        {
            GL.glTranslatef(0f, 0f, -30f);

            GL.glBegin(GL.GL_QUADS);
            //!!! for blended REFLECTION
            float mirrorhight = 3;
            float mirrorwidth = 15;

            if (screen)
            {
                GL.glColor4d(0.0, 0.0, 0.6, 0.4);
            }
            else
            {
                GL.glColor4d(1, 1, 1, 0);
            }
            GL.glVertex3f(0, 0, 0);
            GL.glVertex3f(0, 0, mirrorwidth);
            GL.glVertex3f(0, mirrorhight, mirrorwidth);
            GL.glVertex3f(0, mirrorhight, 0);
            GL.glEnd();

            GL.glTranslatef(0f, 0f, 30f);
        }
示例#9
0
文件: cOGL.cs 项目: matanmaron/Tanks
        void DrawGrid(float gridsize)
        {
            //floor texture
            GL.glEnable(GL.GL_TEXTURE_2D);

            GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]);
            GL.glBegin(GL.GL_QUADS);
            GL.glColor3f(1f, 1f, 1f);//white clear
            //left side

            GL.glNormal3f(0.0f, 1.0f, 0.0f);
            GL.glTexCoord2f(0, 0);
            GL.glVertex3f(0, 0, 0);
            GL.glTexCoord2f(0, 1);
            GL.glVertex3f(-gridsize, 0, 0);
            GL.glTexCoord2f(1f, 1f);
            GL.glVertex3f(-gridsize, 0, -gridsize * 2);
            GL.glTexCoord2f(1f, 0);
            GL.glVertex3f(0, 0, -gridsize * 2);
            //right side
            GL.glNormal3f(0.0f, 1.0f, 0.0f);
            GL.glTexCoord2f(0, 0);
            GL.glVertex3f(0, 0, 0);
            GL.glTexCoord2f(0, 1);
            GL.glVertex3f(gridsize, 0, 0);
            GL.glTexCoord2f(1f, 1f);
            GL.glVertex3f(gridsize, 0, -gridsize * 2);
            GL.glTexCoord2f(1f, 0);
            GL.glVertex3f(0, 0, -gridsize * 2);

            GL.glEnd();
            GL.glDisable(GL.GL_TEXTURE_2D);
        }
示例#10
0
        private void drawCubeAndPasteTexture(float i_Height)
        {
            GL.glBegin(GL.GL_QUADS);
            GL.glColor3f(1.0f, 1.0f, 1.0f); // bug fix

            //Back side
            GL.glTexCoord2f(0.25f, 0.0f);
            GL.glVertex3f(0.0f, 0.0f + i_Height, 0.0f);

            GL.glTexCoord2f(0.0f, 0.0f);
            GL.glVertex3f(1.0f, 0.0f + i_Height, 0.0f);

            GL.glTexCoord2f(0.0f, 1.0f);
            GL.glVertex3f(1.0f, 1.0f + i_Height, 0.0f);

            GL.glTexCoord2f(0.25f, 1.0f);
            GL.glVertex3f(0.0f, 1.0f + i_Height, 0.0f);

            //Left side
            GL.glTexCoord2f(0.25f, 0.0f);
            GL.glVertex3f(0.0f, 0.0f + i_Height, 0.0f);

            GL.glTexCoord2f(0.5f, 0.0f);
            GL.glVertex3f(0.0f, 0.0f + i_Height, 1.0f);

            GL.glTexCoord2f(0.5f, 1.0f);
            GL.glVertex3f(0.0f, 1.0f + i_Height, 1.0f);

            GL.glTexCoord2f(0.25f, 1.0f);
            GL.glVertex3f(0.0f, 1.0f + i_Height, 0.0f);

            //Right side
            GL.glTexCoord2f(1.0f, 0.0f);
            GL.glVertex3f(1.0f, 0.0f + i_Height, 0.0f);

            GL.glTexCoord2f(0.75f, 0.0f);
            GL.glVertex3f(1.0f, 0.0f + i_Height, 1.0f);

            GL.glTexCoord2f(0.75f, 1.0f);
            GL.glVertex3f(1.0f, 1.0f + i_Height, 1.0f);

            GL.glTexCoord2f(1.0f, 1.0f);
            GL.glVertex3f(1.0f, 1.0f + i_Height, 0.0f);

            //FrontSide
            GL.glTexCoord2f(0.5f, 0.0f);
            GL.glVertex3f(0.0f, 0.0f + i_Height, 1.0f);

            GL.glTexCoord2f(0.75f, 0.0f);
            GL.glVertex3f(1.0f, 0.0f + i_Height, 1.0f);

            GL.glTexCoord2f(0.75f, 1.0f);
            GL.glVertex3f(1.0f, 1.0f + i_Height, 1.0f);

            GL.glTexCoord2f(0.5f, 1.0f);
            GL.glVertex3f(0.0f, 1.0f + i_Height, 1.0f);

            GL.glEnd();
        }
示例#11
0
        void DrawGrid(float gridsize, bool sky)
        {
            float h = 0;

            //floor texture
            GL.glEnable(GL.GL_TEXTURE_2D);

            if (sky)
            {
                GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[6]);
            }
            else
            {
                GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]);
            }

            GL.glBegin(GL.GL_QUADS);
            GL.glColor3f(1f, 1f, 1f);//white clear
            //left side
            if (sky)
            {
                h = 10;
                GL.glNormal3f(0.0f, -1.0f, 0.0f);
            }
            else
            {
                GL.glNormal3f(0.0f, 1.0f, 0.0f);
            }

            GL.glTexCoord2f(0, 0);
            GL.glVertex3f(0, h, 0);
            GL.glTexCoord2f(0, 1);
            GL.glVertex3f(-gridsize, h, 0);
            GL.glTexCoord2f(1f, 1f);
            GL.glVertex3f(-gridsize, h, -gridsize * 2);
            GL.glTexCoord2f(1f, 0);
            GL.glVertex3f(0, h, -gridsize * 2);
            //right side
            if (sky)
            {
                GL.glNormal3f(0.0f, -1.0f, 0.0f);
            }
            else
            {
                GL.glNormal3f(0.0f, 1.0f, 0.0f);
            }
            GL.glTexCoord2f(0, 0);
            GL.glVertex3f(0, h, 0);
            GL.glTexCoord2f(0, 1);
            GL.glVertex3f(gridsize, h, 0);
            GL.glTexCoord2f(1f, 1f);
            GL.glVertex3f(gridsize, h, -gridsize * 2);
            GL.glTexCoord2f(1f, 0);
            GL.glVertex3f(0, h, -gridsize * 2);

            GL.glEnd();
            GL.glDisable(GL.GL_TEXTURE_2D);
        }
示例#12
0
 public void Draw()
 {
     GL.glBegin(GL.GL_LINES);
     GL.glColor3f(color.R, color.G, color.B);
     GL.glVertex3f(v1.X, v1.Y, v1.Z);
     GL.glVertex3f(v2.X, v2.Y, v2.Z);
     ApplyTransformation();
     GL.glEnd();
 }
示例#13
0
        void DrawTexturedCube()
        {
            float big   = 1.0f;
            float small = big;

            // front
            GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[0]);
            GL.glBegin(GL.GL_QUADS);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-big, -big, big);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(big, -big, big);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(big, big, big);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-big, big, big);
            GL.glEnd();
            // back
            GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[1]);
            GL.glBegin(GL.GL_QUADS);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(small, -small, -small);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-small, -small, -small);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-small, small, -small);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(small, small, -small);
            GL.glEnd();
            // left
            GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[2]);
            GL.glBegin(GL.GL_QUADS);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-small, -small, -small);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-big, -big, big);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-big, big, big);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-small, small, -small);
            GL.glEnd();
            // right
            GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[3]);
            GL.glBegin(GL.GL_QUADS);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(big, -big, big);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(small, -small, -small);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(small, small, -small);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(big, big, big);
            GL.glEnd();
            // top
            GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[4]);
            GL.glBegin(GL.GL_QUADS);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-big, big, big);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(big, big, big);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(small, small, -small);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-small, small, -small);
            GL.glEnd();
            // bottom
            GL.glBindTexture(GL.GL_TEXTURE_2D, cubeMapTextures[5]);
            GL.glBegin(GL.GL_QUADS);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-small, -small, -small);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(small, -small, -small);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(big, -big, big);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-big, -big, big);
            GL.glEnd();
        }
示例#14
0
 public void Draw()
 {
     GL.glEnable(GL.GL_LIGHTING);
     GL.glBegin(GL.GL_QUADS);
     //!!! for blended REFLECTION
     GL.glColor4d(0, 0, 1, 0.5);
     GL.glVertex3d(-3, -3, 0);
     GL.glVertex3d(-3, 3, 0);
     GL.glVertex3d(3, 3, 0);
     GL.glVertex3d(3, -3, 0);
     GL.glEnd();
 }
示例#15
0
 void DrawFloor()
 {
     GL.glEnable(GL.GL_LIGHTING);
     GL.glBegin(GL.GL_QUADS);
     //!!! for blended REFLECTION
     GL.glColor4d(0, 0, 1, 0.5);
     GL.glVertex3d(-1, -1, 0);
     GL.glVertex3d(-1, 1, 0);
     GL.glVertex3d(1, 1, 0);
     GL.glVertex3d(1, -1, 0);
     GL.glEnd();
 }
示例#16
0
 //! TEXTURE CUBE b
 //Draws our textured cube, VERY simple.  Notice that the faces are constructed
 //in a counter-clockwise order.  If they were done in a clockwise order you would
 //have to use the glFrontFace() function.
 void DrawTexturedCube()
 {
     // front
     GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]);
     GL.glBegin(GL.GL_QUADS);
     GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-40.0f, -40.0f, 40.0f);
     GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(40.0f, -40.0f, 40.0f);
     GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(40.0f, 40.0f, 40.0f);
     GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-40.0f, 40.0f, 40.0f);
     GL.glEnd();
     // back
     GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[1]);
     GL.glBegin(GL.GL_QUADS);
     GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(40.0f, -40.0f, -40.0f);
     GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-40.0f, -40.0f, -40.0f);
     GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-40.0f, 40.0f, -40.0f);
     GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(40.0f, 40.0f, -40.0f);
     GL.glEnd();
     // left
     GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[2]);
     GL.glBegin(GL.GL_QUADS);
     GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-40.0f, -40.0f, -40.0f);
     GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-40.0f, -40.0f, 40.0f);
     GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-40.0f, 40.0f, 40.0f);
     GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-40.0f, 40.0f, -40.0f);
     GL.glEnd();
     // right
     GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[3]);
     GL.glBegin(GL.GL_QUADS);
     GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(40.0f, -40.0f, 40.0f);
     GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(40.0f, -40.0f, -40.0f);
     GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(40.0f, 40.0f, -40.0f);
     GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(40.0f, 40.0f, 40.0f);
     GL.glEnd();
     // top
     GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[4]);
     GL.glBegin(GL.GL_QUADS);
     GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-40.0f, 40.0f, 40.0f);
     GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(40.0f, 40.0f, 40.0f);
     GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(40.0f, 40.0f, -40.0f);
     GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-40.0f, 40.0f, -40.0f);
     GL.glEnd();
     // bottom
     GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[5]);
     GL.glBegin(GL.GL_QUADS);
     GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-40.0f, -40.0f, -40.0f);
     GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(40.0f, -40.0f, -40.0f);
     GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(40.0f, -40.0f, 40.0f);
     GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-40.0f, -40.0f, 40.0f);
     GL.glEnd();
 }
示例#17
0
        void DrawTexturedCube()
        {
            GL.glEnable(GL.GL_TEXTURE_2D);
            GL.glDisable(GL.GL_BLEND);
            GL.glColor3d(1, 1, 1);
            GL.glDisable(GL.GL_LIGHTING);
            // front
            GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]);
            GL.glBegin(GL.GL_QUADS);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(300.0f, -0.01f, 300.0f);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-300.0f, -0.01f, 300.0f);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-300.0f, 300.0f, 300.0f);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(300.0f, 300.0f, 300.0f);
            GL.glEnd();
            // back
            GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[0]);
            GL.glBegin(GL.GL_QUADS);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-300.0f, -0.01f, -300.0f);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(300.0f, -0.01f, -300.0f);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(300.0f, 300.0f, -300.0f);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-300.0f, 300.0f, -300.0f);
            GL.glEnd();
            // left
            GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[2]);
            GL.glBegin(GL.GL_QUADS);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-300.0f, -0.01f, 300.0f);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(-300.0f, -0.01f, -300.0f);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(-300.0f, 300.0f, -300.0f);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-300.0f, 300.0f, 300.0f);
            GL.glEnd();
            // right
            GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[3]);
            GL.glBegin(GL.GL_QUADS);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(300.0f, -0.01f, -300.0f);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(300.0f, -0.01f, 300.0f);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(300.0f, 300.0f, 300.0f);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(300.0f, 300.0f, -300.0f);
            GL.glEnd();
            // top
            GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[4]);
            GL.glBegin(GL.GL_QUADS);
            GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-300.0f, 300.0f, -300.0f);
            GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(300.0f, 300.0f, -300.0f);
            GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(300.0f, 300.0f, 300.0f);
            GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-300.0f, 300.0f, 300.0f);
            GL.glEnd();

            GL.glDisable(GL.GL_TEXTURE_2D);
            GL.glEnable(GL.GL_BLEND);
        }
示例#18
0
 public void Drawfloor()
 {
     GL.glPushMatrix();
     GL.glColor3f(0.0f, 1.0f, 0.0f);
     GL.glTranslatef(0, -0.001f, 0);
     GL.glBegin(GL.GL_QUADS);
     GL.glNormal3f(0, 1, 0);
     GL.glVertex3f(-100, 0, -100);
     GL.glVertex3f(-100, 0, 100);
     GL.glVertex3f(100, 0, 100);
     GL.glVertex3f(100, 0, -100);
     GL.glEnd();
     GL.glPopMatrix();
 }
示例#19
0
        void drawStar(Star star, bool isForShade)
        {
            if (star.toDraw == true)
            {
                GL.glPushMatrix();



                GL.glTranslatef(0f, 0f, 1f);
                GL.glTranslatef(star.X + (float)xExisOrigin, star.Y + (float)yExisOrigin, 3 - Math.Abs(2f * (float)Math.Cos(ballZMovement)));
                GL.glRotatef(ballZtranslate, 0, 0, 1f);


                if (!isForShade)
                {
                    GL.glEnable(GL.GL_TEXTURE_2D);
                    GL.glColor3f(1.0f, 1.0f, 1.0f);
                    GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[6]);
                    GL.glEnable(GL.GL_TEXTURE_GEN_S);

                    GL.glEnable(GL.GL_TEXTURE_GEN_T);
                    GL.glTexGeni(GL.GL_S, GL.GL_TEXTURE_GEN_MODE, (int)GL.GL_SPHERE_MAP);
                    GL.glTexGeni(GL.GL_T, GL.GL_TEXTURE_GEN_MODE, (int)GL.GL_SPHERE_MAP);
                }
                else
                {
                    GL.glColor3d(0.2, 0.2, 0.2);
                }
                for (int i = 0; i < 5; i++)
                {
                    GL.glRotatef(72, 1, 0, 0);
                    GL.glBegin(GL.GL_QUADS);

                    GL.glVertex3f(0f, 0f, 0);
                    GL.glVertex3f(0f, (float)Math.Sin(36), 1);
                    GL.glVertex3f(0f, 0, 3f);
                    GL.glVertex3f(0f, -(float)Math.Sin(36), 1);

                    GL.glEnd();
                }
                if (!isForShade)
                {
                    GL.glDisable(GL.GL_TEXTURE_GEN_S);
                    GL.glDisable(GL.GL_TEXTURE_GEN_T);
                    GL.glDisable(GL.GL_TEXTURE_2D);
                }
                GL.glPopMatrix();
            }
        }
示例#20
0
        protected void DrawRoom()
        {
            GL.glColor3f(1.0f, 1.0f, 1.0f);
            GL.glEnable(GL.GL_TEXTURE_2D);
            GL.glBindTexture(GL.GL_TEXTURE_2D, texture[0]);
            GL.glDisable(GL.GL_LIGHTING);

            GL.glBegin(GL.GL_QUADS);

            GL.glTexCoord2d(1, 1);
            GL.glVertex3d(-100, 100, 100);
            GL.glTexCoord2d(0.75, 1);
            GL.glVertex3d(100, 100, 100);
            GL.glTexCoord2d(0.75, 0);
            GL.glVertex3d(100, -100, 100);
            GL.glTexCoord2d(1, 0);
            GL.glVertex3d(-100, -100, 100);

            GL.glTexCoord2d(0.25, 1);
            GL.glVertex3d(-100, 100, -100);
            GL.glTexCoord2d(0.5, 1);
            GL.glVertex3d(100, 100, -100);
            GL.glTexCoord2d(0.5, 0);
            GL.glVertex3d(100, -100, -100);
            GL.glTexCoord2d(0.25, 0);
            GL.glVertex3d(-100, -100, -100);

            GL.glTexCoord2d(0.25, 1);
            GL.glVertex3d(-100, 100, -100);
            GL.glTexCoord2d(0, 1);
            GL.glVertex3d(-100, 100, 100);
            GL.glTexCoord2d(0, 0);
            GL.glVertex3d(-100, -100, 100);
            GL.glTexCoord2d(0.25, 0);
            GL.glVertex3d(-100, -100, -100);

            GL.glTexCoord2d(0.75, 1);
            GL.glVertex3d(100, 100, 100);
            GL.glTexCoord2d(0.5, 1);
            GL.glVertex3d(100, 100, -100);
            GL.glTexCoord2d(0.5, 0);
            GL.glVertex3d(100, -100, -100);
            GL.glTexCoord2d(0.75, 0);
            GL.glVertex3d(100, -100, 100);

            GL.glEnd();
            GL.glDisable(GL.GL_TEXTURE_2D);
        }
示例#21
0
        public void DrawWithTexture(int multMirrorPicture, bool isFrontOrbackWall)
        {
            // multMirrorPicture == -1 : mirror pictures

            uint swapPictures = 0; // if swapPictures == 0 picture left = picture right

            if (multMirrorPicture == -1)
            {
                swapPictures = 1;
            }
            else
            {
                swapPictures = 0;
            }

            if (isFrontOrbackWall)
            {
                if (this.textureId == 12)
                {
                    GL.glBindTexture(GL.GL_TEXTURE_2D, this.textureId + swapPictures);
                }
                else if (this.textureId == 13)
                {
                    GL.glBindTexture(GL.GL_TEXTURE_2D, this.textureId - swapPictures);
                }
            }
            else
            {
                GL.glBindTexture(GL.GL_TEXTURE_2D, this.textureId);
            }

            GL.glBegin(GL.GL_QUADS);
            if (isFrontOrbackWall)
            {
                GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(multMirrorPicture * v1.X, v1.Y, v1.Z);
                GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(multMirrorPicture * v2.X, v2.Y, v2.Z);
                GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(multMirrorPicture * v3.X, v3.Y, v3.Z);
                GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(multMirrorPicture * v4.X, v4.Y, v4.Z);
            }
            else
            {
                GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(v1.X, v1.Y, multMirrorPicture * v1.Z);
                GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(v2.X, v2.Y, multMirrorPicture * v2.Z);
                GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(v3.X, v3.Y, multMirrorPicture * v3.Z);
                GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(v4.X, v4.Y, multMirrorPicture * v4.Z);
            }
            GL.glEnd();
        }
示例#22
0
        protected void DrawFloor()
        {
            GL.glEnable(GL.GL_LIGHTING);
            GL.glEnable(GL.GL_COLOR_MATERIAL);
            GL.glColor4d(0, 0, 1, 0.3);

            GL.glBegin(GL.GL_QUADS);

            GL.glVertex3d(-7, -4, 7);
            GL.glVertex3d(7, -4, 7);
            GL.glVertex3d(7, -4, -7);
            GL.glVertex3d(-7, -4, -7);

            GL.glEnd();
            GL.glDisable(GL.GL_LIGHTING);
        }
示例#23
0
 void DrawAxes(Color xColor, Color yColor, Color zColor)
 {
     GL.glBegin(GL.GL_LINES);
     //x
     GL.glColor3f(xColor.R, xColor.G, xColor.B);
     GL.glVertex3f(-3.0f, 0.0f, 0.0f);
     GL.glVertex3f(3.0f, 0.0f, 0.0f);
     //y
     GL.glColor3f(yColor.R, yColor.G, yColor.B);
     GL.glVertex3f(0.0f, -3.0f, 0.0f);
     GL.glVertex3f(0.0f, 3.0f, 0.0f);
     //z
     GL.glColor3f(zColor.R, zColor.G, zColor.B);
     GL.glVertex3f(0.0f, 0.0f, -3.0f);
     GL.glVertex3f(0.0f, 0.0f, 3.0f);
     GL.glEnd();
 }
示例#24
0
 public void drawaxe()
 {
     GL.glBegin(GL.GL_LINES);
     //x  RED
     GL.glColor3f(1.0f, 0.0f, 0.0f);
     GL.glVertex3f(0.0f, 0.0f, 0.0f);
     GL.glVertex3f(150.0f, 0.0f, 0.0f);
     //y  GREEN
     GL.glColor3f(0.0f, 1.0f, 0.0f);
     GL.glVertex3f(0.0f, 0.0f, 0.0f);
     GL.glVertex3f(0.0f, 150.0f, 0.0f);
     //z  BLUE
     GL.glColor3f(0.0f, 0.0f, 1.0f);
     GL.glVertex3f(0.0f, 0.0f, 0.0f);
     GL.glVertex3f(0.0f, 0.0f, 150.0f);
     GL.glEnd();
 }
示例#25
0
        /**********************************************************************************************************
        *
        *
        *
        * Draw scene components.Axes,lake,light,floor and textures.
        *
        *
        *
        **********************************************************************************************************/

        void DrawAxes()
        {
            GL.glBegin(GL.GL_LINES);
            //x  RED
            GL.glColor3f(1.0f, 0.0f, 0.0f);
            GL.glVertex3f(-3.0f, 0.0f, 0.0f);
            GL.glVertex3f(3.0f, 0.0f, 0.0f);
            //y  GREEN
            GL.glColor3f(0.0f, 1.0f, 0.0f);
            GL.glVertex3f(0.0f, -3.0f, 0.0f);
            GL.glVertex3f(0.0f, 3.0f, 0.0f);
            //z  BLUE
            GL.glColor3f(0.0f, 0.0f, 1.0f);
            GL.glVertex3f(0.0f, 0.0f, -3.0f);
            GL.glVertex3f(0.0f, 0.0f, 3.0f);
            GL.glEnd();
        }
示例#26
0
        private static void RecordItem(float[] n1, float[] n2, float[] n3, uint shadeType)
        {
            float[] q0 = new float[3];
            float[] q1 = new float[3];

            DIFF3(n1, n2, q0);
            DIFF3(n2, n3, q1);
            CrossProduct(q0, q1, q1);
            Normalize(q1);

            GL.glBegin(shadeType);
            GL.glNormal3fv(q1);
            GL.glVertex3fv(n1);
            GL.glVertex3fv(n2);
            GL.glVertex3fv(n3);
            GL.glEnd();
        }
示例#27
0
        private void drawInvertedPyramid()
        {
            GL.glBegin(GL.GL_TRIANGLES);

            //1
            GL.glColor3f(1.0f, 0.0f, 0.0f);
            GL.glVertex3f(0.0f, 0.5f, 0.0f);

            GL.glColor3f(1.0f, 1.0f, 1.0f);
            GL.glVertex3f(0.0f, 0.5f, 1.0f);

            GL.glColor3f(1.0f, 1.0f, 1.0f);
            GL.glVertex3f(0.5f, 0.0f, 0.5f);

            // 2
            GL.glColor3f(0.0f, 1.0f, 0.0f);
            GL.glVertex3f(0.0f, 0.5f, 0.0f);

            GL.glColor3f(1.0f, 1.0f, 1.0f);
            GL.glVertex3f(1.0f, 0.5f, 0.0f);

            GL.glColor3f(1.0f, 1.0f, 1.0f);
            GL.glVertex3f(0.5f, 0.0f, 0.5f);

            // 3
            GL.glColor3f(0.0f, 0.0f, 1.0f);
            GL.glVertex3f(1.0f, 0.5f, 1.0f);

            GL.glColor3f(1.0f, 1.0f, 1.0f);
            GL.glVertex3f(0.0f, 0.5f, 1.0f);

            GL.glColor3f(1.0f, 1.0f, 1.0f);
            GL.glVertex3f(0.5f, 0.0f, 0.5f);

            // 4
            GL.glColor3f(1.0f, 0.5f, 1.0f);
            GL.glVertex3f(1.0f, 0.5f, 1.0f);

            GL.glColor3f(1.0f, 1.0f, 1.0f);
            GL.glVertex3f(1.0f, 0.5f, 0.0f);

            GL.glColor3f(1.0f, 1.0f, 1.0f);
            GL.glVertex3f(0.5f, 0.0f, 0.5f);

            GL.glEnd();
        }
示例#28
0
        void DrawBounds()
        {
            if (isBounds)
            {
                GL.glScalef(0.99f, 0.99f, 0.99f);
                GL.glLineWidth(2);
                GL.glColor3f(1.0f, 0.0f, 0.0f);
                GL.glDisable(GL.GL_LIGHTING);
                GL.glBegin(GL.GL_LINE_LOOP);
                GL.glVertex3f(-1, -1, -1);
                GL.glVertex3f(1, -1, -1);
                GL.glVertex3f(1, -1, 1);
                GL.glVertex3f(-1, -1, 1);
                GL.glEnd();
                GL.glBegin(GL.GL_LINE_LOOP);
                GL.glVertex3f(-1, 1, -1);
                GL.glVertex3f(1, 1, -1);
                GL.glVertex3f(1, 1, 1);
                GL.glVertex3f(-1, 1, 1);
                GL.glEnd();
                GL.glBegin(GL.GL_LINES);
                GL.glVertex3f(-1, -1, -1);
                GL.glVertex3f(-1, 1, -1);

                GL.glVertex3f(1, -1, -1);
                GL.glVertex3f(1, 1, -1);

                GL.glVertex3f(1, -1, 1);
                GL.glVertex3f(1, 1, 1);

                GL.glVertex3f(-1, -1, 1);
                GL.glVertex3f(-1, 1, 1);
                GL.glEnd();
                GL.glScalef(1.0f / 0.99f, 1.0f / 0.99f, 1.0f / 0.99f);
            }

            GL.glEnable(GL.GL_COLOR_MATERIAL);
            GL.glEnable(GL.GL_LIGHTING);
            GL.glEnable(GL.GL_LIGHT0);
            GL.glTranslatef(0.1f, 0.2f, -0.7f);
            GL.glColor3f(0, 1, 0);
            GLU.gluSphere(obj, 0.05, 16, 16);
            GL.glTranslatef(-0.1f, -0.2f, 0.7f);
            GL.glDisable(GL.GL_LIGHTING);
        }
示例#29
0
        public void createLeafList()
        {
            GL.glNewList(LEAF_LIST + currentTree, GL.GL_COMPILE);
            GL.glBegin(GL.GL_TRIANGLES);

            GL.glNormal3f(-0.1f, 0, leafScale);
            GL.glVertex3f(0, 0, 0);
            GL.glVertex3f(leafScale, leafScale, 0.1f);
            GL.glVertex3f(0, leafScale * 2, 0);

            GL.glNormal3f(0.1f, 0, leafScale);
            GL.glVertex3f(0, 0, 0);
            GL.glVertex3f(0, leafScale * 2, 0);
            GL.glVertex3f(leafScale, leafScale, 0.1f);

            GL.glEnd();
            GL.glEndList();
        }
示例#30
0
 void drawFloorTextured()
 {
     GL.glEnable(GL.GL_TEXTURE_2D);
     GL.glDisable(GL.GL_BLEND);
     GL.glColor3d(1, 1, 1);
     GL.glDisable(GL.GL_LIGHTING);
     GL.glBindTexture(GL.GL_TEXTURE_2D, Textures[5]);
     GL.glBegin(GL.GL_QUADS);
     GL.glNormal3f(0, 1, 0);
     GL.glTexCoord2f(0.0f, 0.0f); GL.glVertex3f(-200, -0.01f, 200);
     GL.glTexCoord2f(1.0f, 0.0f); GL.glVertex3f(200, -0.01f, 200);
     GL.glTexCoord2f(1.0f, 1.0f); GL.glVertex3f(200, -0.01f, -200);
     GL.glTexCoord2f(0.0f, 1.0f); GL.glVertex3f(-200, -0.01f, -200);
     GL.glEnd();
     GL.glDisable(GL.GL_TEXTURE_2D);
     GL.glEnable(GL.GL_BLEND);
     GL.glEnable(GL.GL_LIGHTING);
 }