Convertir el estado de Fixed-Function direct3D

El tiempo de ejecución de Microsoft Direct3D convierte el estado de función fija de Direct3D en la versión 2.0 del sombreador de vértices o píxeles si el controlador de pantalla en modo de usuario admite la versión 2.0 o posterior para cada tipo de sombreador. Sin embargo, el tiempo de ejecución no convierte las versiones del sombreador. Por ejemplo, si una aplicación usa vértices o sombreador de píxeles versión 1.1, la versión 1.1 se pasa sin convertir al controlador de pantalla en modo de usuario independientemente de si el controlador admite la versión 2.0 o posterior del sombreador. Los códigos de formato de vértice flexible (FVF) se usan con el procesamiento de funciones fijas.

Características del convertidor para versiones de DirectX

La forma en que funcionan los convertidores de vértices y sombreador de píxeles de función fija depende de la versión de Microsoft DirectX usada:

  • DirectX 9.0

    Los convertidores de vértices y sombreador de píxeles de función fija pueden funcionar con el modelo de controlador de pantalla de Windows Vista.

    Los convertidores están habilitados de forma predeterminada.

    Cuando se usa el convertidor de vértices de función fija o sombreador de píxeles, el dispositivo puro está deshabilitado. Cuando una aplicación solicita el dispositivo puro, el entorno de ejecución de Direct3D crea un dispositivo HAL.

    El entorno de ejecución admite el procesamiento de vértices mixtos.

    El procesamiento de vértices de software siempre usa el convertidor de sombreador de vértices de función fija.

    El procesamiento de vértices de hardware usa el convertidor de sombreador de vértices de función fija cuando el controlador admite sombreador de vértices versión 2.0 o posterior.

    El procesamiento de vértices de hardware usa el convertidor de sombreador de píxeles de función fija cuando el controlador admite la versión 2.0 o posterior del sombreador de píxeles.

    En el modo de procesamiento de vértices mixtos cuando el convertidor de sombreador de vértices de función fija está habilitado para el hardware, el número de constantes float se establece en lo que el hardware puede admitir.

  • DirectX 8.0 y versiones anteriores

    Los convertidores de vértices y sombreador de píxeles de función fija solo pueden funcionar con el modelo de controlador de pantalla de Windows Vista.

    Los convertidores están habilitados de forma predeterminada.

    El convertidor de sombreador de vértices de función fija no se admite con el procesamiento de vértices de software.

    El procesamiento de vértices de hardware usa el convertidor de sombreador de vértices de función fija cuando el controlador admite sombreador de vértices versión 2.0 o posterior.

    El procesamiento de vértices de hardware usa el convertidor de sombreador de píxeles de función fija cuando el controlador admite la versión 2.0 o posterior del sombreador de píxeles.

    Nota Para las versiones de DirectX anteriores a DirectX 8.0, la función fija para el código de asignación de sombreador se implementa en Ddraw.dll.

Funciones de controlador de visualización de User-Mode no usadas

El tiempo de ejecución de Direct3D no llama a las siguientes funciones de controlador de pantalla en modo de usuario cuando el convertidor de sombreador de vértices de función fija está habilitado:

Estados de representación sin usar

El tiempo de ejecución de Direct3D no pasa los siguientes estados de representación (o, si se pasa por error, el controlador puede omitirlo) cuando el convertidor de sombreador de vértices de función fija está habilitado:

  • 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

Estados de fase de textura omitida

El tiempo de ejecución de Direct3D pasa todos los estados de fase de textura al controlador. El controlador debe omitir los siguientes estados de fase de textura cuando el convertidor de sombreador de píxeles de función fija está habilitado:

  • 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