내 글루 와이어 큐브가 원산지에 배치되지 않은 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1839128

문제

디스플레이 기능에 다음과 같은 OpenGL 코드가 있습니다.

glLoadIdentity();
gluLookAt(eyex, eyey, eyez, atx, aty, atz, upx, upy, upz);
// called as: gluLookAt(20, 5, 5, -20, 5, 5, 0, 1, 0);

axis();
glutWireCube (1.);

glFlush ();

axis() (0,0,0)에서 (10,0,0), (0,10,0) 및 (0,10,0)의 선을, (1,0,0)에서 (1,) 라인을 그립니다. 3,0).

내 재구성 기능에는 다음이 포함되어 있습니다.

glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluPerspective(45.0, (GLsizei) w / (GLsizei) h, 1.0, 100.0);
glMatrixMode (GL_MODELVIEW);

이 이미지는 프로그램을 실행 한 결과를 보여줍니다. 1. 논쟁으로 glutWireCube:

glutWireCube(1.)

보시다시피, 큐브는 문서가 말한 것처럼 (0,0,0)를 중심으로하지 않습니다.

큐브는 모델링 좌표 원점 (...)을 중심으로합니다. (원천)

내가 프로그램을 실행하면 5. 논쟁으로, 큐브는 더욱 대체됩니다.

glutWireCube(5.)

왜 그게 큐브를 (0,0,0) 주위에 어떻게 배치합니까?

추가 정보

순서를 전환해도 중요하지 않습니다 axis() 그리고 glutWireCube. 주변 axis() ~와 함께 glPushMatrix() 그리고 glPopMatrix() 그것을 고치지 않습니다.

해결책

나는 수정했다 gluPerspective 카메라에서 멀어지기 시작하고 이제 z- 버퍼링이 제대로 작동하므로 큐브가 원점 주위에 배치되어 있음이 분명합니다.

도움이 되었습니까?

해결책

Axis가 View Matrix를 엉망으로 만들지 않습니까?

큐브 그림 후에 전화하면 어떻게됩니까?

추가 할 편집 :

사실 ... 사진을 더 가까이 보면 ~이다 원점을 중심으로합니다.

큐브의 중심은 3 축의 교차점과 정확히 일치하는 것 같습니다. 의심스러워 보이는 유일한 것은 빨간 선이 흰색 가장자리에 쓰지 않는다는 것입니다. Z- 버퍼링이 제대로 설정되어 있습니까?

다른 팁

옳을 수도 있습니다. 관점으로 인해 결정하기가 어렵다고 생각합니다 ... 그러나 조금 더 쳐다 보는 것은 아니라고 생각합니다.

그것을 신속하게 배제합니다 axis() 모델보기 행렬을 수정하지 않고 행렬 푸시/팝으로 호출을 둘러싸고 있습니다.

glPushMatrix();
axis();
glPopMatrix();

조사/확인해야 할 사항 :

  1. 이것이 전체 창입니까? 뷰가 한쪽 구석에있는 것이 이상해 보입니다.
  2. 렌더링 전에 증가하는 회전을 추가하면 도움이됩니까? 더 많은 단서를 제공함으로써 관점을 더 쉽게 결정할 수 있습니다.
  3. 논쟁을 변경하여 "카메라"를 이동시켜 볼 수도 있습니다. gluLookAt() 동적으로.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top