세계 좌표, 정규화 된 장치 좌표 및 장치 좌표


13

세 가지의 차이점을 알 수 있습니까? 좋은 예가 더해집니다.

답변:


20

월드 좌표 는 게임 세계의 기반이됩니다. 모든 객체의 3D 위치는 궁극적으로 직접 또는 노드 계층을 통해 월드 공간에서 지정됩니다. 지상, 건물, 나무 및 기타 고정 된 물건은 월드 공간에 고정됩니다. 게임 플레이 계산 및 물리학은 월드 공간에서 수행 될 것입니다. 월드 좌표 축은 종종 X = 동쪽, Y = 북쪽, Z = 위쪽과 같은 나침반 방향을 나타 내기 위해 사용됩니다.

로컬 좌표 는 객체에 부착됩니다 (각 객체마다 하나의 로컬 좌표 공간이 있습니다). 축은 고유 한 방향을 갖는 캐릭터, 차량, 총 등과 같은 물체에 대해 예를 들어 X = 앞으로, Y = 왼쪽, Z = 위로와 같이 물체에 의미있는 것을 나타낼 수 있습니다. 객체가 움직일 때 (변환 매트릭스로 표현 된) 로컬 공간과 월드 공간 간의 관계가 변경됩니다. 예를 들어 자동차를 거꾸로 뒤집 으면 로컬 Z 축 (로컬 공간에서 "위쪽")이 월드 공간에서 "아래쪽"으로 표시됩니다.

카메라 또는 뷰 좌표 는 카메라에 연결된 로컬 좌표입니다. 이것은 3D 좌표계이지만 투영이나 다른 것은 없지만 화면 방향과 일치하도록 축이 정렬되어 있습니다 (일반적으로 X = 오른쪽, Y = 위, Z = 뒤로). 세계에서보기 공간으로의 변환을 종종 "뷰 매트릭스"라고합니다.

클립 공간 좌표 는 정점 셰이더에 의해 출력되는 좌표입니다. 투영 행렬이 적용된 좌표이지만 원근 분할은 아닙니다. 이것은 4D (동질) 공간입니다. (세계, 로컬 및 뷰 공간은 내재적 w = 1 인 3D입니다.) 뷰 프러스 텀 클리핑 및 컬링이 발생하는 공간 (개념적으로는 최소한)이기 때문에 그렇게 명명되었습니다.

일반적으로 "스크린 공간"이라고도하는 정규화 된 장치 좌표 는 해당 용어가 약간 느슨하지만 원근 분할을 클립 공간 좌표에 적용한 후 얻는 것입니다. 3D 좌표는 이제 화면에서 포인트의 2D 위치를 나타내며, X와 Y는 [-1, 1]에, 깊이 버퍼 범위 내의 깊이, D3D의 경우 [0, 1]의 Z 또는 [-1, 1]과 함께 ]를 OpenGL에 사용합니다. 축 방향은 X = 오른쪽, Y = 위쪽이며 Z는 깊이 버퍼 구성에 따라 앞뒤로 될 수 있습니다.

장치 좌표 는 렌더 대상 내에서 2D 픽셀 좌표이며 왼쪽 위 모서리에 (0, 0), X = 오른쪽, Y = 아래쪽입니다. 뷰포트 변환을 표준화 된 장치 좌표에 적용함으로써 장치 좌표에 도달한다; 뷰포트는 이미지가 렌더링 대상에 표시되는 픽셀 오프셋 및 해상도를 제어합니다. 주목해야 할 것은 장치 좌표가 정수 값이 아니라는 것입니다. 그들은 픽셀의 인덱스가 아닙니다. 픽셀 크기 단위를 사용하는 연속 2D 좌표계이지만 분수 (서브 픽셀) 값은 완벽하게 유효합니다. 이 좌표계에서 픽셀 중심은 0.5 오프셋 (예 : 0.5, 1.5, 2.5, ...)에 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.