Advertisement

ScreenSaver #38

Started by September 29, 2002 01:38 PM
1 comment, last by 3DPixel 22 years, 5 months ago
I have this big problem with Nehe Tutorial #38 I can build the program pretty well. I see the butterfly etc... But when I had a pyramid in it ( a simple pyramid ) in the Display() method, it never appears. What am I doing wrong? am I missing something. the code is the same but with some triangle added. ---code--- void Display() { glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer for (int loop=0; loop<50; loop++) // Loop Of 50 (Draw 50 Objects) { glLoadIdentity (); // Reset The Modelview Matrix glBindTexture(GL_TEXTURE_2D, texture[obj[loop].tex]); // Bind Our Texture glTranslatef(obj[loop].x,obj[loop].y,obj[loop].z); // Position The Object glRotatef(45.0f,1.0f,0.0f,0.0f); // Rotate On The X-Axis if (dRotate) { glRotatef((obj[loop].spinz),0.0f,0.0f,1.0f); // Spin On The Z-Axis } glBegin(GL_TRIANGLES); // Begin Drawing Triangles // First Triangle _____ glTexCoord2f(1.0f,1.0f); glVertex3f( 1.0f, 1.0f, 0.0f); // (2)| / (1) glTexCoord2f(0.0f,1.0f); glVertex3f(-1.0f, 1.0f, obj[loop].flap); // | / glTexCoord2f(0.0f,0.0f); glVertex3f(-1.0f,-1.0f, 0.0f); // (3)|/ // Second Triangle glTexCoord2f(1.0f,1.0f); glVertex3f( 1.0f, 1.0f, 0.0f); // /|(1) glTexCoord2f(0.0f,0.0f); glVertex3f(-1.0f,-1.0f, 0.0f); // / | glTexCoord2f(1.0f,0.0f); glVertex3f( 1.0f,-1.0f, obj[loop].flap); // (2)/____|(3) glEnd(); // Done Drawing Triangles obj[loop].y-=obj[loop].yi; // Move Object Down The Screen obj[loop].spinz+=obj[loop].spinzi; // Increase Z Rotation By spinzi obj[loop].flap+=obj[loop].fi; // Increase flap Value By fi if (obj[loop].y<-18.0f) // Is Object Off The Screen? { SetObject(loop); // If So, Reassign New Values } if ((obj[loop].flap>1.0f) || (obj[loop].flap<-1.0f)) // Time To Change Flap Direction? { obj[loop].fi=-obj[loop].fi; // Change Direction By Making fi = -fi } } glLoadIdentity (); glBegin(GL_TRIANGLES); // Start Drawing The Pyramid glColor3f(1.0f,0.0f,0.0f); // Red glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Front) glColor3f(0.0f,1.0f,0.0f); // Green glVertex3f(-1.0f,-1.0f, 1.0f); // Left Of Triangle (Front) glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f( 1.0f,-1.0f, 1.0f); // Right Of Triangle (Front) glColor3f(1.0f,0.0f,0.0f); // Red glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Right) glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f( 1.0f,-1.0f, 1.0f); // Left Of Triangle (Right) glColor3f(0.0f,1.0f,0.0f); // Green glVertex3f( 1.0f,-1.0f, -1.0f); // Right Of Triangle (Right) glColor3f(1.0f,0.0f,0.0f); // Red glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Back) glColor3f(0.0f,1.0f,0.0f); // Green glVertex3f( 1.0f,-1.0f, -1.0f); // Left Of Triangle (Back) glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f(-1.0f,-1.0f, -1.0f); // Right Of Triangle (Back) glColor3f(1.0f,0.0f,0.0f); // Red glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Left) glColor3f(0.0f,0.0f,1.0f); // Blue glVertex3f(-1.0f,-1.0f,-1.0f); // Left Of Triangle (Left) glColor3f(0.0f,1.0f,0.0f); // Green glVertex3f(-1.0f,-1.0f, 1.0f); // Right Of Triangle (Left) glEnd(); Sleep(15); // Create A Short Delay (15 Milliseconds) glFlush (); } ---code---
try calling glDisable( GL_TEXTURE_2D ) before you start drawing your pyramid
Advertisement
Thank you, you solve all my problems!!!

This topic is closed to new replies.

Advertisement