일반적으로 3D 그래픽 애플리케이션은 왼손과 오른손의 두 가지 카티전 좌표계 유형을 사용합니다. 두 좌표계에서 양수 x축은 오른쪽을 가리키고 양수 y축은 위쪽을 가리킵니다. 양수 x 방향에서 왼쪽 또는 오른손의 손가락을 가리키고 양수 y 방향으로 컬링하여 양수 z 축이 가리키는 방향을 기억할 수 있습니다. 엄지 손가락이 가리키는 방향은 해당 좌표계에 대해 양수 z축이 가리키는 방향입니다. 다음 그림에서는 이러한 두 좌표계를 보여 줍니다.
왼손 및 오른손 카티전 좌표계그림
Direct3D는 왼손 좌표계를 사용합니다. 오른손 좌표계를 기반으로 하는 애플리케이션을 포팅하는 경우 Direct3D에 전달된 데이터를 두 가지 변경해야 합니다.
- 시스템이 전면에서 시계 방향으로 트래버스하도록 삼각형 꼭짓점의 순서를 대칭 이동합니다. 즉, 꼭짓점이 v0, v1, v2이면 Direct3D에 v0, v2, v1로 전달합니다.
- 뷰 행렬을 사용하여 z 방향으로 -1 세계 공간의 크기를 조정합니다. 이렇게 하려면 뷰 행렬에 사용하는 D3DMATRIX 구조체의 _31, _32, _33 및 _34 멤버의 기호를 대칭 이동합니다.
오른손잡이 세계에 해당하는 금액을 얻으려면 D3DXMatrixPerspectiveRH 사용하고 D3DXMatrixOrthoRH함수를프로젝션 변환을 정의합니다. 그러나 해당 D3DXMatrixLookAtRH 함수를 사용하고, 백페이스 컬링 순서를 되돌리고, 그에 따라 큐브 맵을 배치해야 합니다.
왼손 및 오른손 좌표가 가장 일반적인 시스템이지만 3D 소프트웨어에서 사용되는 다른 좌표계는 다양합니다. 예를 들어 3D 모델링 애플리케이션에서 y축이 뷰어를 향하거나 멀리 가리키고 z축이 위쪽을 가리키는 좌표계를 사용하는 것은 드문 일이 아닙니다.
공식적으로, 기본 벡터 집합(즉, 좌표계)의 방향은 특정 기본 벡터 집합에 정의된 행렬의 결정자를 계산하여 찾을 수 있습니다. 결정자가 양수이면 기초는 "긍정적으로" 지향적(또는 오른손잡이)이라고 합니다. 결정자가 음수이면 기초는 "음수" 지향(또는 왼손)이라고 합니다. 결정자가 무엇인지에 대한 설명은 선형 대수 리소스를 참조하세요.
비공식적으로 "오른쪽/왼쪽 규칙"을 사용하여 지정된 기본 벡터 집합이 오른쪽 또는 왼손 좌표계를 형성하는지 확인할 수 있습니다.
3D 좌표계에 정의된 개체에서 수행하는 필수 작업은 변환, 회전 및 크기 조정입니다. 이러한 기본 변환을 결합하여 변환 매트릭스를 만들 수 있습니다. 자세한 내용은 변환(Direct3D 9)참조하세요.
이러한 작업을 결합하면 결과가 커밋되지 않습니다. 행렬을 곱하는 순서가 중요합니다.
관련 항목