DirectX Graphics 프로그래밍 가이드 튜토리얼, 샘플, 툴, 힌트 샘플 Environment Mapping 샘플 Sphere Map 샘플   [목차열람] [주소복사] [슬롯비우기]
Sphere Map 샘플
 
Microsoft DirectX 9.0

Sphere Map 샘플


설명

Sphere Map 샘플에서는, 구면의 맵핑으로 불리는 환경 맵핑의 방법을 나타낸다. 환경 맵핑은, 3D 개체의 주위의 환경 (라이트등)을 텍스처 맵에 배치해, 조명의 계산을 실시하지 않고 개체에 복잡한 조명 이펙트를 적용할 수 있는 방법이다.

환경 맵핑의 방법 (큐브 맵핑이나 투영 텍스처등)의 일부의 기능 밖에 지원 하고 있지 않는 카드도 있다. 디스플레이스먼트 맵핑의 더 자세한 정보는, 「환경 맵핑」을 참조할것.

패스

소스 파일 : (SDK 루트) \Samples\C++\Direct3D\EnvMapping\SphereMap

실행 가능 파일 : (SDK 루트) \Samples\C++\Direct3D\Bin

사용자 가이드

다음의 표는 , 처리 되고 있는 키를 나타내고 있다. 메뉴 커멘드를 사용해 같은 조작을 실시할 수가 있다.

동작
Enter장면을 시작 및 정지한다.
Space 키장면을 조금씩 진행한다.
F2새로운 렌더링 장치 또는 디스플레이 모드를 선택하도록(듯이) 사용자에 지시한다.
Alt+Enter풀 스크린 모드와 윈도우 모드를 바꾼다.
Esc애플리케이션을 종료한다.

프로그래밍 정보

구면의 맵핑에서는, 모델링시에 미리 계산된, 크롬의 구체에 의해 반사된 환경 전체를 포함한 텍스처 맵을 사용한다. 이 방법에서는, 각 정점에 대해, 그 법선을 계산해, 그 법선이 크롬의 구체상에서 일치하는 위치를 찾아내, 그 텍스처 좌표를 정점에 할당한다.

매칭은 복잡하지 않지만, 각 프레임의 각 정점에 대해 계산이 필요하다. 이 계산은, Microsoft® Direct3D® 의 텍스처 좌표 생성 기능을 사용해 실시할 수가 있다. 관련하는 렌더링 스테이트 처리는 D3DTSS_TCI_CAMERASPACENORMAL 로, 카메라 공간에서의 정점의 법선을 사용해, 텍스처 변환에 의해 변형해, 텍스처 좌표를 생성한다. 다음에, 텍스처 행렬을 설정해 나머지의 처리를 실시한다. 이 단순한 케이스에서는, 행렬은, 카메라 공간 (-1, +1)으로부터 텍스처 공간 (0,1)을 얻어오기 위해 텍스처 좌표를 스케일링 해, 평행이동 하는 것만으로 있다.

이 샘플에서는, 헬퍼-함수등의 프로그래밍 요소로부터 구성되는 Microsoft DirectX® 코드를 사용한다. 이 코드는 DirectX 소프트웨어 개발 킷 (SDK) 외 샘플과 공유되고 있다. 샘플 프레임워크(framework)의 헤더는 (SDK 루트)\Samples\C++\Common\Include, 소스 코드는 (SDK 루트) \Samples\C++\Common\Src 에 있다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP