Direct3D Fixed-Function 상태 변환

사용자 모드 디스플레이 드라이버가 각 셰이더 유형에 대해 버전 2.0 이상을 지원하는 경우 Microsoft Direct3D 런타임은 Direct3D 고정 함수 상태를 꼭짓점 또는 픽셀 셰이더 버전 2.0으로 변환합니다. 그러나 런타임은 셰이더 버전을 변환하지 않습니다. 예를 들어 애플리케이션에서 꼭짓점 또는 픽셀 셰이더 버전 1.1을 사용하는 경우 드라이버가 셰이더 버전 2.0 이상을 지원하는지 여부에 관계없이 버전 1.1이 사용자 모드 디스플레이 드라이버에 변환되지 않은 상태로 전달됩니다. FVF(유연한 꼭짓점 형식) 코드는 고정 함수 처리에 사용됩니다.

DirectX 버전용 변환기 기능

고정 함수 꼭짓점 및 픽셀 셰이더 변환기의 작동 방식은 사용되는 Microsoft DirectX 버전에 따라 달라집니다.

  • DirectX 9.0

    고정 함수 꼭짓점 및 픽셀 셰이더 변환기는 Windows Vista 디스플레이 드라이버 모델에서 작동할 수 있습니다.

    변환기는 기본적으로 사용하도록 설정됩니다.

    고정 함수 꼭짓점 또는 픽셀 셰이더 변환기를 사용하면 순수 디바이스가 비활성화됩니다. 애플리케이션이 순수 디바이스를 요청하면 Direct3D 런타임에서 HAL 디바이스를 만듭니다.

    런타임은 혼합 꼭짓점 처리를 지원합니다.

    소프트웨어 꼭짓점 처리는 항상 고정 함수 꼭짓점 셰이더 변환기를 사용합니다.

    하드웨어 꼭짓점 처리는 드라이버가 꼭짓점 셰이더 버전 2.0 이상을 지원할 때 고정 함수 꼭짓점 셰이더 변환기를 사용합니다.

    하드웨어 꼭짓점 처리는 드라이버가 픽셀 셰이더 버전 2.0 이상을 지원하는 경우 고정 함수 픽셀 셰이더 변환기를 사용합니다.

    하드웨어에 대해 고정 함수 꼭짓점 셰이더 변환기를 사용하는 경우 혼합 꼭짓점 처리 모드에서 float 상수 수는 하드웨어에서 지원할 수 있는 값으로 설정됩니다.

  • DirectX 8.0 이하

    고정 함수 꼭짓점 및 픽셀 셰이더 변환기는 Windows Vista 디스플레이 드라이버 모델에서만 작동할 수 있습니다.

    변환기는 기본적으로 사용하도록 설정됩니다.

    고정 함수 꼭짓점 셰이더 변환기는 소프트웨어 꼭짓점 처리에서 지원되지 않습니다.

    하드웨어 꼭짓점 처리는 드라이버가 꼭짓점 셰이더 버전 2.0 이상을 지원할 때 고정 함수 꼭짓점 셰이더 변환기를 사용합니다.

    하드웨어 꼭짓점 처리는 드라이버가 픽셀 셰이더 버전 2.0 이상을 지원하는 경우 고정 함수 픽셀 셰이더 변환기를 사용합니다.

    참고 DirectX 8.0 이전 버전의 경우 셰이더 매핑 코드에 대한 고정 함수가 Ddraw.dll구현됩니다.

사용되지 않는 User-Mode 표시 드라이버 함수

고정 함수 꼭짓점 셰이더 변환기를 사용하는 경우 Direct3D 런타임에서 다음 사용자 모드 표시 드라이버 함수를 호출하지 않습니다.

사용되지 않는 렌더링 상태

고정 함수 꼭짓점 셰이더 변환기를 사용하는 경우 다음 렌더링 상태는 Direct3D 런타임에서 전달되지 않습니다(또는 실수로 전달된 경우 드라이버에서 무시할 수 있습니다).

  • D3DRS_VERTEXBLEND

  • D3DRS_INDEXEDVERTEXBLENDENABLE

  • D3DRS_TWEENFACTOR

  • D3DRS_FOGVERTEXMODE

  • D3DRS_LIGHTING

  • D3DRS_AMBIENT

  • D3DRS_COLORVERTEX

  • D3DRS_LOCALVIEWER

  • D3DRS_DIFFUSEMATERIALSOURCE

  • D3DRS_SPECULARMATERIALSOURCE

  • D3DRS_AMBIENTMATERIALSOURCE

  • D3DRS_EMISSIVEMATERIALSOURCE

  • D3DRS_POINTSCALEENABLE

  • D3DRS_POINTSCALE_A

  • D3DRS_POINTSCALE_B

  • D3DRS_POINTSCALE_C

  • D3DRS_NORMALIZENORMALS

무시된 텍스처 스테이지 상태

Direct3D 런타임은 모든 텍스처 스테이지 상태를 드라이버에 전달합니다. 고정 함수 픽셀 셰이더 변환기를 사용하는 경우 드라이버는 다음 텍스처 단계 상태를 무시해야 합니다.

  • D3DTSS_COLOROP

  • D3DTSS_COLORARG1

  • D3DTSS_COLORARG2

  • D3DTSS_ALPHAOP

  • D3DTSS_ALPHAARG1

  • D3DTSS_ALPHAARG2

  • D3DTSS_BUMPENVMAT00

  • D3DTSS_BUMPENVMAT01

  • D3DTSS_BUMPENVMAT10

  • D3DTSS_BUMPENVMAT11

  • D3DTSS_BUMPENVLSCALE

  • D3DTSS_BUMPENVLOFFSET

  • D3DTSS_COLORARG0

  • D3DTSS_ALPHAARG0

  • D3DTSS_RESULTARG

  • D3DTSS_CONSTANT