직각 투영을 구성하여 태양의 그림자 맵을 올바르게 보이게하고 싶습니다. 불행히도, 코드는 규칙적인 투시 투영을 사용하여 원하는 결과를 얻지 못하고 있습니다. 투영 행렬을 설정하는 코드는 다음과 같습니다.3D 직교 투영
glViewport (0, 0, (GLsizei)shadowMap.x, (GLsizei)shadowMap.y);
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
//suns use this
glOrtho(0, shadowMap.x, 0, shadowMap.y, 0.1,1000.0);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity();
정확해야합니다. 그러나 빠른 디버그 렌더링 후에 장면이 화면의 작은 부분에 렌더링되고있는 것으로 나타났습니다. 몇 가지 실험을 한 후에 glOth의 shadowMap 값을 변경하면 전체 텍스처를 덮을 수 있지만 실제로 확대되었습니다. 내 원근 투영에서는 가까운 곳과 멀리있는 곳에서 0.1과 1000.0을 사용하고 그 중 하나를 실험했습니다 결과를 변경하지만 원하는 결과를 얻지 못합니다. 내가 올바른 결과를 얻는 유일한 시간은 값이 shadowMap.x와 shadowMap.y로 유지 될 때이지만, 말했듯이 렌더링은 실제로 작습니다.
내가 뭘 잘못하고 있니? 내가 읽은 모든 것은 초기 코드가 정확하다고 말했다.
편집 : 분명히 이것이 섀도우 맵 패스를위한 것인지 확실하지 않았습니다. 일반 패스는 원근감으로 렌더링되며 괜찮습니다.
나는 그림자 매핑이 어떻게 작동하는지 알고있다. 이것은 광원에 대한 투영 코드이다. 나는 그 질문에 명확하지 않다는 것을 짐작한다, 새롭게했다. 또한 패스가 잘못 되었기 때문에이 코드가 올바르지 않은 경우, 잘못된 프로젝션에서 장면이 렌더링되므로 기술적으로 그림자 맵에 독립적입니다. – BlueSpud
마지막 참고 사항 업데이트 됨 : – Anonymous
결승전이 정사각형 인 지 모르겠습니다. 왜냐하면 결코 들어 본 적이 없기 때문입니다. 그러나 렌더링에서 지오메트리가 카메라 공간으로 변환됩니다. 직교 투영은 변환을 사용하지 않으므로 모델 뷰에서 카메라 변환을 생략해야합니까? – BlueSpud