유전자 변형 파리에 간단한 그림이 표시되는 실험 설정을 다루고 있습니다. 그 그림은 그 비행 거리와 일정한 거리를두고 화면에 투사됩니다.OpenGL Perspective 보정을 설정하는 방법은 무엇입니까?
이제 원근감 교정을 설정하여 표시되는 이미지 (예 : 가로 막 대형 막대)가 파리의 시점 (experimental setup)에서 먼 거리에 더 넓게 보입니다. 코드는 이제 다음과 같습니다
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(!USEFRUSTUM)
gluPerspective(90.0f, 2 * width/height, 0.1f, 100.0f);
else
glFrustum(92.3f, 2.3f, -25.0f, 65.0f, 50.0f, 1000.0f);
값은 몇 년 전에 누군가가 입력 한 우리는 더 이상 정확하지 않습니다 파악되었다. 그러나 실험 설정에서 볼 수 있듯이 파리의 시야가 약간 기울어 져 있기 때문에 어떤 값을 입력하거나 변경하여 투영이 제대로 작동하는지 혼란 스럽습니다. 프로젝션 스크린
- fovy = 각도 A와 C 사이
- 측정 폭과 높이
I는 그 값에 대한 생각? 비행 거리에서 화면의 상단 또는 하단까지의 거리를 측정해야합니까? 나는 누군가가 0.1f를 입력 한 이유를 알지 못한다.
- zFar의 가치를 어떻게 알 수 있습니까? 그것은 비행 거리에있는 물체의 최대 거리입니까?
도움 주셔서 감사합니다.
안녕하세요 datenwolf! 대답 해 주셔서 감사합니다.이제는 근거리, 좌, 우로 측정하는 방법과 내 경우의 절두체가 어떻게 보이는지 이해했습니다. 제가 아직 이해하지 못하는 것은 스케일링 인자를 결정하는 방법입니다. "OpenGL Programming Guide : 공식 OpenGL 학습 안내서, 버전 3"(Google 도서)을 읽었습니다. 측정 값이 일관성있는 단위를 사용하는 한, 크기를 조정하지 않은 채로 둘 수 있습니다. 깊이 범위는 파리의 시야 깊이에 따라 달라질 수 있습니까? 내 동료들과 적절한 가치에 대해 토론 할 수 있다고 생각합니다. – TheCooocy
@TheCooocy : 예, OpenGL로 그리는 모든 지오메트리가 일관성이 있다면 's'(즉 s = 1)를 완전히 생략 할 수 있습니다. 물리적 인 동물 (동물)과 상호 작용하기 때문에 "외부"투영 시스템이 측정되는 것과 동일한 물리적 단위로 OpenGL을 사용하여 그릴 형상을 정의하는 것이 좋습니다. * 거리는 실제 화면까지의 거리가 아니어야합니다 (파리의 눈앞에서 작은 화면을 이미징). 그러나 설정에 물리적 제약이 있다면 큰 화면을 사용해야합니다. – datenwolf
@TheCooocy : 그렇다면 당신이하는 것은 "가상"근거리 거리'n_'과 실제 스크린 거리'n' 사이의 비율을 취하고, 왼쪽, 오른쪽, 아래쪽, 위, 그리고 가까운 것을 비율 'n_/n' '. 만약 여러분이 모든 일을하고 있다면, 말하자면, * mm * 단위는 멀리있는 물체들이 (갑자기) 사라지는 절단 거리가 될 것입니다. 깊이 버퍼 해상도와 관련된 실용적인 이유 때문에 * far * 값을 작게 선택하고 * near * 값을 가능한 한 작게 선택하여 그려야 할 형상을 수용해야합니다. – datenwolf