I've been developing a little hobby program for the past few days and I've come across an interesting glitch that I haven't been able to solve. Basically when I started adding 3D cubes to the program they wouldn't render correctly. The top of the cube seemed to fall into the the cube. A screenshot of what is happening: http://i.imgur.com/aOFil5D.png My rendering code (note: I am writing the program in Java)
public static void drawCube(float x, float y, float z, Color col, float size)
{
GL11.glTranslatef(x, y, z);
GL11.glBegin(GL11.GL_QUADS);
//Top Face
GL11.glColor3f(col.r+0.05f,col.g+0.05f,col.b+0.05f); //Set face color
GL11.glVertex3f( size, size,-size); //Top right corner
GL11.glVertex3f( -size,size,-size); //Top left corner
GL11.glVertex3f( -size, size,size); //Bottom left corner
GL11.glVertex3f( size, size, size); //Bottom right corner
//Bottom face
GL11.glColor3f(col.r-0.1f,col.g-0.1f,col.b-0.1f); //Set cube color
GL11.glVertex3f( size, -size,size); //Top right corner
GL11.glVertex3f( -size,-size,size); //Top left corner
GL11.glVertex3f(-size,-size,-size); //Bottom left corner
GL11.glVertex3f( size,-size,-size); //Bottom right corner
//Front face
GL11.glColor3f(col.r-0.07f,col.g-0.07f,col.b-0.07f); //Set cube color
GL11.glVertex3f( size, size, size); // Top right corner
GL11.glVertex3f( -size, size,size); // Top left corner
GL11.glVertex3f( -size,-size,size); // Bottom left corner
GL11.glVertex3f( size, -size,size); // Bottom right corner
//Back face
GL11.glColor3f(col.r+0.02f,col.g+0.02f,col.b+0.02f); //Set cube color
GL11.glVertex3f( size,-size,-size); // Top right corner
GL11.glVertex3f(-size,-size,-size); // Top left corner
GL11.glVertex3f(-size, size,-size); // Bottom left corner
GL11.glVertex3f( size, size,-size); // Bottom right corner
//Left face
GL11.glColor3f(col.r,col.g,col.b); //Set cube color
GL11.glVertex3f(-size, size, size); // Top right corner
GL11.glVertex3f(-size, size,-size); // Top left corner
GL11.glVertex3f(-size,-size,-size); // Bottom left corner
GL11.glVertex3f(-size,-size, size); // Bottom right corner
//Right face
GL11.glColor3f(col.r-0.05f,col.g-0.05f,col.b-0.05f); //Set cube color
GL11.glVertex3f( size, size,-size); // Top right corner
GL11.glVertex3f( size, size, size); // Top left corner
GL11.glVertex3f( size,-size, size); // Bottom left corner
GL11.glVertex3f( size,-size,-size); // Bottom right corner*/
GL11.glEnd();
GL11.glLoadIdentity();
}
I honestly have no idea why this is caused. I have used this code before for rendering cubes and it worked fine.
Admittedly I am quite a noob using OpenGL, and don't fully understand the math behind it so I probably am missing something very obvious.
Additional Information:
I am using LWJGL to interface OpenGL and Java. As well as the Netbeans IDE (that shouldn't make a difference but I thought I would make a note of it anyways)
EDIT: Fudge, the formatting got messed up.