다음을 통해 공유


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

텍스처를 사용하여 조명 매핑