Results 1 to 2 of 2

Thread: Shoe carton face problem

  1. #1
    Newbie Newbie
    Join Date
    Nov 2013
    Posts
    1

    Shoe carton face problem

    Hello guys,
    I'm new to openGL, so don't hit me.
    I'm trying to draw a shoe carton where i want to put in things like cubes.

    I'm drawing it with simple vertices, but when I rotate my view, it behaves weird.

    You might understand my problem better with some stuff for your eyes:

    abload.de/image.php?img=boxqcq0z.png
    1. So this is the box. Its simple: 5 faces, 20 vertices, 5 colours. It looks quite how I want - from that perspective.
    2. So let's move a bit around - oh no, what is this? We just moved some steps right and suddenly the red face (back side) is drawn over the green face (right side)! It's an impossible model now!
    3. Back to our origin position from picture 1, we moved some steps down the y-axis, but what is that? The box's floor is now a cover!

    And this is the code, producing this weird stuff
    Code :
    #define UPDATE_INTERVAL 16
    float rotX = 0;
    float rotY = 0;
     
    void Box(GLfloat fSeitenL)
    {
    	float alpha = 1.0f;
    	float xLeft = -fSeitenL / 2.0f;
    	float xRight = fSeitenL / 2.0f;
    	float yBottom = -fSeitenL / 2.0f;
    	float yTop = fSeitenL / 2.0f;
    	float zBack = -fSeitenL / 2.0f;
    	float zFront = fSeitenL / 2.0f;
     
    	// Floor
    	glColor4f(1.0, 1.0, 1.0, alpha);
    	glBegin(GL_POLYGON);
    	glVertex3f(xLeft, yBottom, zBack);
    	glVertex3f(xRight, yBottom, zBack);
    	glVertex3f(xRight, yBottom, zFront);
    	glVertex3f(xLeft, yBottom, zFront);
    	glEnd();
     
    	// Quarter Height
    	yTop = -fSeitenL / 4.0;
     
    	// Right side
    	glBegin(GL_POLYGON);
    	glColor4f(0.0, 1.0, 0.0, alpha);
    	glVertex3f(xRight, yBottom, zFront);
    	glVertex3f(xRight, yBottom, zBack);
    	glVertex3f(xRight, yTop, zBack);
    	glVertex3f(xRight, yTop, zFront);
    	glEnd();
     
    	// back side
    	glBegin(GL_POLYGON);
    	glColor4f(1.0, 0.0, 0.0, alpha);
    	glVertex3f(xRight, yTop, zBack);
    	glVertex3f(xRight, yBottom, zBack);
    	glVertex3f(xLeft, yBottom, zBack);
    	glVertex3f(xLeft, yTop, zBack);
    	glEnd();
     
    	// left side
    	glBegin(GL_POLYGON);
    	glColor4f(0.0, 0.0, 1.0, alpha);
    	glVertex3f(xLeft, yTop, zBack);
    	glVertex3f(xLeft, yBottom, zBack);
    	glVertex3f(xLeft, yBottom, zFront);
    	glVertex3f(xLeft, yTop, zFront);
    	glEnd();
     
    	// front side
    	glBegin(GL_POLYGON);
    	glColor4f(1.0, 1.0, 0, alpha);
    	glVertex3f(xLeft, yBottom, zFront);
    	glVertex3f(xRight, yBottom, zFront);
    	glVertex3f(xRight, yTop, zFront);
    	glVertex3f(xLeft, yTop, zFront);
    	glEnd();
    }
     
    void OnDraw(){
    	glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
    	glMatrixMode(GL_PROJECTION);
    	glLoadIdentity();
    	gluPerspective(40.0, 640 / 480, 1.0, 16.0);
    	glMatrixMode(GL_MODELVIEW);
    	glLoadIdentity();
    	gluLookAt(rotX, rotY, 2.0,
    		0.0, 0.0, 0.0,
    		0.0, 1.0, 0.0);
    	Box(1);
    	glutSwapBuffers();
    }
     
    void OnUpdate(int value){
    	glutPostRedisplay();
    	glutTimerFunc(UPDATE_INTERVAL, OnUpdate, 0);
    }
     
    int _tmain(int argc, char** argv)
    {
    	glutInit(&argc, argv);
    	glutInitDisplayMode( GL_DEPTH_BUFFER_BIT | GLUT_RGBA | GLUT_DOUBLE);
    	glutInitWindowSize(WINDOW_WIDTH, WINDOW_HEIGHT);
    	glutCreateWindow(WINDOW_TITLE);
            glutDisplayFunc(OnDraw);
    	glutTimerFunc(UPDATE_INTERVAL, OnUpdate, 0);
    	glutMainLoop();
    	return EXIT_SUCCESS;
    }

    So what is the problem and how can I solve it?

  2. #2
    Senior Member OpenGL Pro Aleksandar's Avatar
    Join Date
    Jul 2009
    Posts
    1,214
    Add glEnable(GL_DEPTH_TEST) somewhere in the initialization code (some PrepareScene() function), or in OnDraw() for the first help.

Similar Threads

  1. Replies: 3
    Last Post: 11-24-2015, 06:05 AM
  2. creating 3d with mesh, problem with face
    By woshka in forum OpenGL: General
    Replies: 0
    Last Post: 05-22-2013, 01:24 PM
  3. changing back face to front face in vertex shader
    By hoschie211 in forum OpenGL: GLSL
    Replies: 1
    Last Post: 11-03-2009, 12:36 AM
  4. opengl gml per face normal and per face vertex question
    By GaMEFRo in forum OpenGL: Basic Coding
    Replies: 1
    Last Post: 11-06-2006, 10:49 AM
  5. face on
    By imported_aNt in forum OpenGL: Basic Coding
    Replies: 5
    Last Post: 07-27-2000, 06:34 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Proudly hosted by Digital Ocean