DirectX Graphics 프로그래밍 가이드 튜토리얼, 샘플, 툴, 힌트 샘플 범프 맵핑의 샘플 Dot Product 3 샘플   [목차열람] [주소복사] [슬롯비우기]
Dot Product 3 샘플
 
Microsoft DirectX 9.0

Dot Product 3 샘플


설명

Dot Product 3 샘플에서는, Microsoft® Direct3D® 의 범프 맵핑의 다른 어프로치를 나타낸다. 이 방법은, 라이트의 벡터와 표면의 법선을 조합하는 수학적인 처리를 기념하여 이름을 붙일 수 있다. 표면의 법선은, RGBA 포맷으로 텍스처 맵 (이 방법에서는 법선 맵이라고 부른다)에 보존되는 종래의 (x, y, z) 벡터이다.

모든 카드가 DotProduct3 혼합 텍스처 스테이지를 지원 하고 있는 것은 아니고, 모든 카드가 Direct3D 범프 맵핑을 지원 하고 있는 것도 아니다.

패스

소스 파일 : (SDK 루트) \Samples\C++\Direct3D\BumpMapping\DotProduct3

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

사용자 가이드

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

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

프로그래밍 정보

범프 맵핑을 시뮬레이트 하는 조명의 방정식에서는, 표면의 법선과 조명의 벡터의 내적을 사용한다. 조명의 벡터는 텍스처 계수에게 건네져 법선은 텍스처 맵에 encode 된다. 혼합 스테이지는 다음과 같이 된다.

SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_DOTPRODUCT3 );
SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_TFACTOR );

다음의 순서는, 법선을 텍스처에 보존하는 것이다. 이것을 실시하기 위해서(때문에), 벡터의 요소 (XYZW)는 각각, 32 비트 부동 소수점수(실수)값으로부터 부호 첨부 8 비트 정수에 변환되어 텍스처 컬러 (RGBA)에 팩 된다. 코드에서는, 독자적으로 생성한 법선 맵, 및 범프 맵핑 텍스처 이미지로부터 구축된 법선 맵을 사용해, 이것을 실시하는 방법을 나타내고 있다.

범프 맵핑 방법의 일부의 기능 밖에 지원 하고 있지 않는 카드도 있다. 일부의 하드웨어에서는, 범프 맵핑을 지원 하고 있지 않는 경우나, 일부 밖에 지원 하고 있지 않는 경우가 있다. 범프 맵핑의 더 자세한 정보는, Microsoft DirectX®  소프트웨어 개발 킷 (SDK)의 메뉴얼을 참조할것.

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



© 2002 Microsoft Corporation. All rights reserved.
↑TOP