여러 텍스처

Direct3D 드라이버는 DirectX SDK 설명서에 설명된 텍스처 스테이지 상태 형식 D3DTEXTURESTAGESTATETYPE의 텍스처 스테이지 상태를 사용하여 여러 텍스처의 동시 사용을 지원할 수 있습니다. 이 형식을 사용하면 텍스처의 모든 속성을 정의하고 독립적인 텍스처 좌표 데이터 집합을 지정하는 꼭짓점 확장과 결합할 수 있습니다.

Direct3D 드라이버에 대한 여러 텍스처 지원을 추가하려면 올바른 기능 비트(Caps)를 설정하고, 텍스처 혼합을 구현하고, D3dValidateTextureStageState를 구현해야 합니다.

DirectX 6.0 이상 버전을 준수하려면 디바이스가 D3DHAL_D3DEXTENDEDCAPS 구조체dwFVFCaps 멤버에 정의된 좌표 수를 반복하고 사용할 수 있더라도 최대 8개의 텍스처 좌표 집합을 올바르게 구문 분석해야 합니다. 드라이버는 D3DTSS_TEXCOORDINDEX 사용하여 텍스처링에 사용할 올바른 좌표를 가져옵니다.

FVF(유연한 꼭짓점 형식)를 사용하면 꼭짓점 구조에서 둘 이상의 텍스처 좌표를 전달할 수 있으므로 여러 텍스처를 사용할 수 있습니다. 그런 다음 여러 텍스처를 반복된 프로세스에서 함께 혼합하여 기하 도형 조각에 적용할 수 있습니다.

텍스처 핸들은 Direct3D 드라이버에서 더 이상 생성되지 않습니다. 대신 텍스처 핸들은 Direct3D 런타임에 의해 생성됩니다. 텍스처 캐시 관리는 Direct3D 런타임에 의해 완전히 수행되므로 드라이버에 텍스처는 항상 애플리케이션 자체에서 제공되는 것처럼 보입니다. 모든 텍스처 상태는 D3dDrawPrimitives2 명령 스트림의 드라이버로 전송됩니다.

여러 텍스처를 추가하여 혼합 및 텍스처 필터링 방법도 구체화되어 보다 명확하고 잘 정의된 혼합 메커니즘을 제공합니다. 이러한 혼합 및 텍스처 필터링 메커니즘에 대한 자세한 내용은 Microsoft DirectX SDK 설명서를 참조하세요.

드라이버가 D3DCAPS8 구조체의 DevCaps 멤버에서 D3DDEVCAPS_SEPARATETEXTUREMEMORIES 플래그를 설정하는 경우 DirectX 8.0 이상 버전의 애플리케이션이 동시에 여러 텍스처를 사용하지 않도록 설정되어 있음을 나타냅니다. 드라이버는 Reporting DirectX 8.0 Style Direct3D 기능에 설명된 대로 GetDriverInfo2 쿼리에 대한 응답으로 D3DCAPS8 구조를 반환합니다. 이 쿼리의 지원은 GetDriverInfo2 지원에 설명되어 있습니다.