구형 환경 매핑(Direct3D 9)

구형 환경 맵 또는 구 맵은 개체를 둘러싼 장면의 이미지 또는 개체 주위의 조명 효과를 포함하는 특수 텍스처입니다. 입방 환경 맵과 달리 구 맵은 개체의 주변을 직접 나타내지 않습니다. 환경 매핑(Direct3D 9) 항목의 찻주전자 이미지는 구 매핑으로 얻을 수 있는 반사 효과를 보여 줍니다. 구 맵은 다음 그림과 같이 물고기 눈 렌즈를 통해 가져온 것처럼 개체 주변 장면의 전체 360도 뷰를 2D로 표현합니다.

건물 내부의 구 맵 그림

구형 환경 맵의 텍스처 좌표

환경 매핑을 수신하는 각 꼭짓점마다 지정한 텍스처 좌표는 표면의 곡률에 의해 생성된 반사 왜곡의 함수로서 텍스처를 처리해야 합니다. 애플리케이션은 원하는 효과를 얻으려면 각 꼭짓점의 이러한 텍스처 좌표를 계산해야 합니다. 텍스처 좌표를 생성하는 간단하고 효과적인 방법 중 하나는 꼭짓점 법선 을 입력으로 사용합니다. 여러 메서드가 있지만 다음 수식은 구 맵을 사용하여 환경 매핑을 수행하는 애플리케이션에서 일반적입니다.

구 맵에 대한 텍스처 좌표 계산 수식

이러한 수식에서 귀하와 v는 계산되는 텍스처 좌표이고 NX 및 NY 는 카메라 공간 꼭짓점 법선의 x 및 y 구성 요소입니다. 수식은 간단하지만 효과적입니다. 표준에 양의 x 구성 요소가 있는 경우 표준은 오른쪽을 가리키고 u 좌표는 텍스처를 적절하게 처리하도록 조정됩니다. 마찬가지로 v 좌표의 경우 양수 y는 표준이 위쪽을 가리키고 있음을 나타냅니다. 각 구성 요소의 음수 값은 반대입니다.

표준이 카메라에서 직접 가리키는 경우 결과 좌표는 왜곡을 받지 않아야 합니다. 두 좌표에 대한 +0.5 바이어스는 구 맵의 가운데에 0 왜곡 지점을 배치하고 꼭짓점 법선(0, 0, z)은 이 점을 해결합니다. 이 수식은 표준의 z 구성 요소를 고려하지 않지만 수식을 사용하는 애플리케이션은 양의 z 요소가 있는 표준으로 꼭짓점을 건너뛰어 계산을 최적화할 수 있습니다. 이는 평면 음영 개체에 대해 작동합니다. 카메라 공간에서 일반 지점이 카메라(양의 z)에서 떨어진 경우 개체가 렌더링될 때 꼭짓점이 컬링되기 때문입니다. Gouraud 음영 개체의 경우 법선이 카메라(양의 x)를 가리킬 수 있으며 꼭짓점이 포함된 삼각형은 계속 표시될 수 있습니다. 이 꼭짓점에서 사용자와 v를 계산하지 않으면 얼굴이 계속 사용되어 예기치 않은 동작이 발생할 수 있습니다.

구형 환경 맵 적용

IDirect3DDevice9::SetTexture 메서드를 사용하여 텍스처를 적절한 텍스처 단계로 설정하여 다른 텍스처와 동일한 방식으로 개체에 환경 맵을 적용합니다. 첫 번째 매개 변수를 원하는 텍스처 단계의 인덱스로 설정하고 두 번째 매개 변수를 환경 맵에 대한 텍스처를 만들 때 반환된 IDirect3DDevice9 인터페이스의 주소로 설정합니다. 원하는 텍스처 혼합 효과를 얻기 위해 필요에 따라 색 및 알파 혼합 작업 및 인수를 설정할 수 있습니다.

환경 매핑