텍스처링 요구 사항
이 섹션에서는 텍스처 크기 및 텍스처 필터링에 대한 요구 사항을 나열합니다. IDirect3DDevice7::ValidateDevice 메서드에 대한 텍스처 관련 요구 사항도 있습니다.
질감 크기
다음은 텍스처 크기에 대한 요구 사항입니다.
드라이버는 D3DDEVICEDESC7 구조체의 dwMinTextureWidth, dwMinTextureHeight, dwMaxTextureWidth 및 dwMaxTextureHeight 멤버를 통해 최소 및 최대 텍스처 차원을 노출해야 합니다. 이 구조는 Direct3D SDK 설명서에 정의되어 있습니다.
하드웨어의 텍스처에 가로 세로 비율 제한이 있는 경우 해당 비율은 D3DDEVICEDESC7 구조체의 dwMaxTextureAspectRatio 멤버에 있어야 합니다.
디바이스가 2의 강력한 텍스처 차원만 지원하는 경우 D3DPRIMCAPS 구조체의 dwTextureCaps 멤버를 설정하여 적절한 기본 형식(선 또는 삼각형)에 대한 D3DPTEXTURECAPS_POW2 플래그를 포함해야 합니다.
텍스처 스테이지의 텍스처 주소 지정 모드가 D3DTADDRESS_CLAMP 설정될 때 디바이스가 임의 크기의 2차원(볼륨 또는 큐브 텍스처 아님)을 지원할 수 있는 경우 텍스처 스테이지의 텍스처 래핑이 비활성화되고(D3DRENDERSTATE_WRAP n 이 0으로 설정됨) MIP 매핑이 사용되지 않는 경우 D3DPTEXTURECAPS_NONPOW2CONDITIONAL 플래그를 설정해야 합니다.
디바이스에서 크기가 같은 텍스처만 지원하는 경우 D3DPRIMCAPS 구조체의 dwTextureCaps 멤버가 적절한 기본 형식(선 또는 삼각형)에 대한 D3DPTEXTURECAPS_SQUAREONLY 플래그를 포함하도록 설정해야 합니다.
디바이스가 첫 번째 및 두 번째 요구 사항에 설명된 것 이외의 제한 없이 임의 크기의 텍스처를 지원하는 경우 세 번째, 네 번째 및 다섯 번째 요구 사항에 설명된 플래그를 설정해서는 안 됩니다.
텍스처 필터링
텍스처를 확대하고 축소하는 필터는 D3DTSS_MAGFILTER 및 D3DTSS_MINFILTER 텍스처 스테이지 상태를 통해 사용 및 사용하지 않도록 설정해야 합니다. 이러한 상태가 사용하지 않도록 설정된 경우 이 필터링을 자동으로 수행하면 안 됩니다. D3DTSS_Xxx 텍스처 스테이지 상태에 대한 자세한 내용은 Direct3D SDK 설명서의 D3DTEXTURESTAGESTATETYPE 열거 형식을 참조하세요.
텍스처 MIP 매핑은 D3DTSS_MIPFILTER 텍스처 단계 상태를 통해 사용하도록 설정하고 사용하지 않도록 설정해야 합니다. 이 상태가 비활성화되었지만 텍스처가 MIP 맵으로 만들어진 경우 디바이스는 MIP 맵의 최상위 수준만 사용해야 합니다. 이 상태가 비활성화된 경우 MIP 매핑된 필터링을 수행하면 안 됩니다.
디바이스가 이방성 필터링을 지원하는 경우 D3DDEVICEDESC7 구조체의 dwMaxAnisotropy 멤버 값(Direct3D SDK 설명서에 정의됨)을 통해 최대 이방성 수준을 내보내야 합니다. 또한 디바이스는 D3DTSS_MAXANISOTROPY 텍스처 단계 상태에서 1부터 dwMaxAnisotropy 까지의 모든 설정을 수락해야 합니다.
디바이스는 지원되는 모든 필터 모드를 지원되는 모든 형식의 텍스처에 적용할 수 있어야 합니다. 예를 들어 MIP 매핑이 다른 텍스처 형식에서 지원되는 경우 YUV 텍스처의 MIP 맵 필터링을 수행할 수 있어야 합니다.
참고 DirectX 9.0 이상 애플리케이션은 D3DSAMPLERSTATETYPE 열거형의 값을 사용하여 샘플러 텍스처 관련 렌더링 상태의 특성을 제어할 수 있습니다. DirectX 8.0 이하에서는 이러한 샘플러 상태가 D3DTEXTURESTAGESTATETYPE 열거형에 포함되었습니다. 런타임은 드라이버가 사용자 모드 샘플러 상태를 처리할 필요가 없도록 사용자 모드 샘플러 상태(D3DSAMP_Xxx)를 커널 모드 D3DTSS_Xxx 값에 매핑합니다. D3DSAMPLERSTATETYPE에 대한 자세한 내용은 최신 DirectX SDK 설명서를 참조하세요.
IDirect3DDevice7::ValidateDevice
디바이스가 단일 패스에서 텍스처 스테이지 상태 혼합 작업 및 피연산자의 특정 조합을 지원하는 경우 디바이스는 이러한 각 조합에 대해 IDirect3DDevice7::ValidateDevice 메서드(Direct3D SDK 설명서에 설명됨)에 대한 호출에서 DD_OK 반환해야 합니다.
디바이스가 단일 패스에서 텍스처 스테이지 상태 혼합 작업의 특정 조합을 지원하지 않거나 하나 이상의 혼합 작업 또는 피연산자를 지원하지 않는 경우 IDirect3DDevice7::ValidateDevice 메서드에 허용되는 오류 코드 중 하나를 반환해야 합니다. 잘못된 혼합 작업은 IDirect3DDevice7::ValidateDevice 메서드를 자동으로 실패할 수 없습니다.