3
나는 그 라이브러리를 통해 OpenGL을 사용하고 있습니다. 내가 깊이 테스트를 가능하게하고 크기 조정에 내가 할 : 아무리 내가 번역하는 방법을 몇 가지 이유 큐브에 대한OpenGL 다각형이 왼쪽 상단에 붙어 있습니까?
float BOX_SIZE = 200.0f;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glRotatef(0.5, 0, 0.0f, 1.0f);
glBegin(GL_QUADS);
//Top face
glColor3f(1.0f, 1.0f, 0.0f);
glNormal3f(0.0, 1.0f, 0.0f);
glVertex3f(500 + -BOX_SIZE/2, BOX_SIZE/2, -BOX_SIZE/2);
glVertex3f(500 + -BOX_SIZE/2, BOX_SIZE/2, BOX_SIZE/2);
glVertex3f(500 + BOX_SIZE/2, BOX_SIZE/2, BOX_SIZE/2);
glVertex3f(500 + BOX_SIZE/2, BOX_SIZE/2, -BOX_SIZE/2);
//Bottom face
glColor3f(1.0f, 0.0f, 1.0f);
glNormal3f(0.0, -1.0f, 0.0f);
glVertex3f(-BOX_SIZE/2, -BOX_SIZE/2, -BOX_SIZE/2);
glVertex3f(BOX_SIZE/2, -BOX_SIZE/2, -BOX_SIZE/2);
glVertex3f(BOX_SIZE/2, -BOX_SIZE/2, BOX_SIZE/2);
glVertex3f(-BOX_SIZE/2, -BOX_SIZE/2, BOX_SIZE/2);
//Left face
glNormal3f(-1.0, 0.0f, 0.0f);
glColor3f(0.0f, 1.0f, 1.0f);
glVertex3f(-BOX_SIZE/2, -BOX_SIZE/2, -BOX_SIZE/2);
glVertex3f(-BOX_SIZE/2, -BOX_SIZE/2, BOX_SIZE/2);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex3f(-BOX_SIZE/2, BOX_SIZE/2, BOX_SIZE/2);
glVertex3f(-BOX_SIZE/2, BOX_SIZE/2, -BOX_SIZE/2);
//Right face
glNormal3f(1.0, 0.0f, 0.0f);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex3f(BOX_SIZE/2, -BOX_SIZE/2, -BOX_SIZE/2);
glVertex3f(BOX_SIZE/2, BOX_SIZE/2, -BOX_SIZE/2);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex3f(BOX_SIZE/2, BOX_SIZE/2, BOX_SIZE/2);
glVertex3f(BOX_SIZE/2, -BOX_SIZE/2, BOX_SIZE/2);
glEnd();
glEnable(GL_TEXTURE_2D);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glColor3f(1.0f, 1.0f, 1.0f);
glBegin(GL_QUADS);
//Front face
glNormal3f(0.0, 0.0f, 1.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-BOX_SIZE/2, -BOX_SIZE/2, BOX_SIZE/2);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(BOX_SIZE/2, -BOX_SIZE/2, BOX_SIZE/2);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(BOX_SIZE/2, BOX_SIZE/2, BOX_SIZE/2);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-BOX_SIZE/2, BOX_SIZE/2, BOX_SIZE/2);
//Back face
glNormal3f(0.0, 0.0f, -1.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-BOX_SIZE/2, -BOX_SIZE/2, -BOX_SIZE/2);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-BOX_SIZE/2, BOX_SIZE/2, -BOX_SIZE/2);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(BOX_SIZE/2, BOX_SIZE/2, -BOX_SIZE/2);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(BOX_SIZE/2, -BOX_SIZE/2, -BOX_SIZE/2);
glEnd();
glDisable(GL_TEXTURE_2D);
//code goes here
al_flip_display();
0,0과에서 확장하는 것 같다
는glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(0,event.display.width,event.display.height,0,1,300);
그럼 내 그림처럼 보지 않는다 theres 항상 0,0에 꼭지점. 나는 무엇을 잘못 했는가? 감사합니다.