다음을 통해 공유


단색 조명 맵(Direct3D 9)

일부 이전 3D 액셀러레이터 보드는 대상 픽셀의 알파 값을 사용하여 텍스처 혼합을 지원하지 않습니다. 자세한 내용은 알파 텍스처 블렌딩(Direct3D 9) 참조하세요. 이러한 어댑터는 일반적으로 여러 텍스처 혼합을 지원하지 않습니다. 애플리케이션이 이와 같은 어댑터에서 실행되는 경우 멀티패스 텍스처 혼합을 사용하여 단색 조명 매핑을 수행할 수 있습니다.

단색 조명 매핑을 수행하기 위해 애플리케이션은 조명 정보를 조명 맵 텍스처의 알파 데이터에 저장합니다. 애플리케이션은 Direct3D의 텍스처 필터링 기능을 사용하여 기본 이미지의 각 픽셀에서 라이트 맵의 해당 텍셀로 매핑을 수행합니다. 소스 혼합 인수를 해당 텍셀의 알파 값으로 설정합니다.

다음 예제에서는 애플리케이션에서 텍스처를 단색 조명 맵으로 사용하는 방법을 보여 줍니다.

// 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 액셀러레이터 카드에서 사용할 수 있는 첫 번째 텍스처로 설정합니다. 샘플 코드는 질감의 혼합 단계에 대한 색 연산을 설정하여 텍스처 데이터를 기본 형식의 기존 색과 혼합합니다. 그런 다음 첫 번째 텍스처와 기본 형식의 기존 색을 입력 데이터로 선택합니다.

텍스처 사용하여 조명 매핑