구형 환경 맵 또는 구 맵은 개체를 둘러싼 장면의 이미지나 개체 주변의 조명 효과를 포함하는 특수 텍스처입니다. 입방 환경 맵과 달리 구 맵은 개체의 주변 환경을 직접 나타내지 않습니다. 환경 매핑(Direct3D 9) 항목의 찻주전자 이미지는 구 매핑을 사용하여 달성할 수 있는 반사 효과를 보여 줍니다. 구형 맵은 객체를 둘러싼 장면의 전체 360도 뷰를 마치 어안 렌즈를 통해 본 것처럼 2D로 표현한 것으로, 이는 다음 그림에 표시되어 있습니다.
구형 환경 맵의 질감 좌표
환경 매핑을 수신하는 각 꼭짓점마다 지정하는 텍스처 좌표는 표면의 곡률에 의해 생성된 반사 왜곡의 함수로서 텍스처를 처리해야 합니다. 애플리케이션은 원하는 효과를 얻기 위해 각 꼭짓점의 이러한 텍스처 좌표를 계산해야 합니다. 텍스처 좌표를 생성하는 간단하고 효과적인 방법 중 하나는 꼭짓점 법선이 입력으로 사용됩니다. 여러 메서드가 있지만 다음 수식은 구 맵을 사용하여 환경 매핑을 수행하는 애플리케이션에서 일반적입니다.
구 맵수식
이러한 수식에서 u와 v는 계산되는 텍스처 좌표이고 NX 및 NY는 카메라 공간에서 꼭짓점의 x 및 y 구성 요소입니다. 수식은 간단하지만 효과적입니다. 법선에 양의 x 구성 요소가 있는 경우, 법선이 오른쪽을 가리키며, u 좌표는 질감을 올바르게 표현하도록 조정합니다. v 좌표의 경우와 마찬가지로 양수 y는 표준이 위쪽을 가리킨다는 것을 나타냅니다. 각 구성 요소의 음수 값은 반대입니다.
카메라를 직접 가리키는 법선 벡터가 있는 경우, 결과 좌표는 왜곡을 받지 않을 수 있습니다. 두 좌표에 대한 +0.5 바이어스는 구 맵의 가운데에 0 왜곡 지점을 배치하고 꼭짓점 법선(0, 0, z)은 이 점을 해결합니다. 이 수식은 일반의 z 구성 요소를 고려하지 않지만 수식을 사용하는 애플리케이션은 양수 z 요소가 있는 표준으로 꼭짓점을 건너뛰어 계산을 최적화할 수 있습니다. 이는 평면 음영 개체에 대해 작동합니다. 카메라 공간에서 법선이 카메라에서 멀리 떨어져 있는 경우(양의 z) 개체가 렌더링될 때 꼭짓점이 컬링되기 때문입니다. Gouraud 음영이 적용된 개체의 경우, 법선 벡터가 양의 x 방향으로 카메라에서 멀어질 수 있으며, 이를 포함하는 삼각형은 여전히 보일 수 있습니다. 이 꼭짓점에 대해 u와 v를 계산하지 않으면, 그 면이 계속 사용되어 예기치 않은 동작이 발생할 수 있습니다.
구형 환경 맵 적용
IDirect3DDevice9::SetTexture 메서드를 사용하여 텍스처를 적절한 질감 단계로 설정하여 다른 질감과 동일한 방식으로 개체에 환경 맵을 적용합니다. 원하는 텍스처 스테이지의 인덱스로 첫 번째 매개 변수를 설정하고 두 번째 매개 변수를 환경 맵에 대한 텍스처를 만들 때 반환되는 IDirect3DDevice9 인터페이스의 주소로 설정합니다. 필요에 따라 색 및 알파 혼합 작업 및 인수를 설정하여 원하는 텍스처 혼합 효과를 얻을 수 있습니다.
관련 항목