DirectX Graphics 프로그래밍 가이드 고정 기능 파이프라인 텍스처 텍스처 혼합 텍스처에 의한 라이트 맵핑 흑백 라이트 맵   [목차열람] [주소복사] [슬롯비우기]
흑백 라이트 맵
 
Microsoft DirectX 9.0

흑백 라이트 맵


일부의 낡은 3D 가속기 보드에서는, 목적지 픽셀의 알파값을 사용하는 텍스처 혼합을 지원 하고 있지 않는 경우가 있다. 더 자세한 정보는 「알파 텍스처 혼합」을 참조할것. 이러한 어댑터에서는, 일반적으로 멀티 텍스처 혼합도 지원 하고 있지 않다. 이러한 어댑터로 애플리케이션을 실행하는 경우는, 멀티 패스 텍스처 혼합을 사용해 흑백 라이트 맵핑을 실행하면 좋다.

흑백 라이트 맵핑을 실행하려면 , 애플리케이션으로 조명 정보를 라이트 맵 텍스처의 알파 데이터에 저장 한다. 애플리케이션은, Microsoft® Direct3D® 의 텍스처 필터링 능력을 사용해, 기본도형의 화면의 각 픽셀로부터 라이트 맵의 대응하는 텍셀에의 맵핑을 실행한다. 프로그램으로, 전송원혼합 계수를 대응하는 텍셀의 알파값으로 설정한다.

다음의 C++ 코드는, 애플리케이션으로 텍스처를 흑백 라이트 맵으로서 사용하는 방법을 나타내고 있다.

// This example assumes that d3dDevice is a valid pointer to an
// IDirect3DDevice9 interface and that lptexLightMap is a valid
// pointer to a texture that contains monochrome light map data.

// Set the light map texture as the current texture.
d3dDevice->SetTexture(0, lptexLightMap);

// Set the color operation.
d3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);

// Set argument 1 to the color operation.
d3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1,
       D3DTA_TEXTURE | D3DTA_ALPHAREPLICATE);

목적지 알파 혼합을 지원 하고 있지 않는 디스플레이 어댑터는, 보통 멀티 텍스처 혼합을 지원 하고 있지 않기 때문에, 이 예에서는, 모든 3D accelerator card로 사용할 수 있는 라이트 맵을 최초의 텍스처로서 설정해 있다. 또, 이 예에서는, 텍스처의 혼합 스테이지에 대한 컬러 처리를 설정해, 텍스처 데이터를 기본도형의 기존의 색과 블렌드 하고 있다. 그 다음에, 입력 데이터로서 최초의 텍스처와 기본도형의 기존의 색을 선택하고 있다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP