어떤 목적으로 Model View Projection Matrix를 사용합니까? 셰이더에 모델 뷰 투영 행렬이 필요한 이유는 무엇입니까?
어떤 목적으로 Model View Projection Matrix를 사용합니까? 셰이더에 모델 뷰 투영 행렬이 필요한 이유는 무엇입니까?
답변:
모델, 뷰 및 프로젝션 행렬은 세 개의 개별 행렬입니다. 모델은 객체의 로컬 좌표 공간에서 월드 공간으로 매핑하고, 월드 공간에서 카메라 공간으로, 카메라에서 화면으로 투영합니다.
세 가지를 모두 구성하는 경우 하나의 결과를 사용하여 개체 공간에서 화면 공간까지 매핑 할 수 있으므로 들어오는 정점 위치에서 프로그래밍 가능한 파이프 라인의 다음 단계로 전달하는 데 필요한 사항을 파악할 수 있습니다.
예전의 고정 기능 파이프 라인에서는 모델과 뷰를 함께 적용한 다음 그로부터 파생 된 다른 결과를 사용하여 조명을 해결했습니다 (예를 들어 오브젝트에 스케일링을 적용한 경우에도 노멀이 여전히 단위 길이가되도록 일부 수정). ) 다음 투영을 적용합니다. OpenGL에 반영되어 모델과 뷰 매트릭스를 분리하지 않고 단일 모델 뷰 매트릭스 스택으로 유지합니다. 따라서 때때로 셰이더에 반영되는 것을 볼 수 있습니다.
따라서 구성된 모델 뷰 투영 행렬은 셰이더에서 각 모델에 대해로드 한 정점에서 화면으로 매핑하는 데 자주 사용됩니다. 필수는 아닙니다. 똑같은 것을 달성하는 많은 방법이 있습니다. 가능한 모든 선형 변환을 허용하기 때문에 일반적인 것입니다. 그 때문에 덜 구성된 버전도 예전의 고정 파이프 라인 세계에서 표준이되었습니다.
행렬이 편리하기 때문입니다. 행렬은 서로 다른 공간에 대한 위치 / 방향을 변환하는 데 도움이됩니다 (3 개의 수직 축과 원점으로 공간을 정의 할 수 있음).
다음은 주석에 @ legends2k가 지정한 책의 예입니다.
Cartesia의 주민들은 도시의지도를 사용합니다. 원점은 도시의 중심을 상당히 현명하게 중심으로하고 축은 나침반의 기본 지점을 따라 향합니다. 난독증의 주민들은 임의의 지점을 중심으로 한 좌표와 그 당시 좋은 생각으로 보였던 임의의 방향으로 움직이는 축이있는 도시지도를 사용합니다. 두 도시의 시민들은 각각의지도에 매우 만족하지만, 주 교통 엔지니어는 Cartesia와 Dyslexia 사이의 첫 번째 고속도로에 대한 예산을 실행하는 작업을 할당했습니다. 두 도시의 세부 정보를 보여주는지도가 필요하므로 세 번째 좌표를 도입합니다. 그 누구보다 우월한 시스템입니다.
여기 또 다른 예가 있습니다.
세계 좌표를 사용하여 정점 위치가있는 게임에서 자동차 오브젝트를 만들었다 고 가정합니다. 완전히 다른 세계의 다른 게임에서이 같은 차를 사용해야한다고 가정하면 위치를 다시 정의해야하며 계산이 복잡해질 것입니다. 새로운 세계와 관련하여 차 안에서 창, 후드, 헤드 라이트, 바퀴 등의 위치를 다시 계산해야하기 때문입니다.
모델,보기 및 투영의 개념을 이해하려면 이 비디오를 참조하십시오 . (추천)
그런 다음 이것을 보고 세계의 정점이 행렬로 표현되는 방식과 변형되는 방식을 이해합니다.