Modelos de sombreador frente a perfiles de sombreador

El lenguaje de sombreado de alto nivel para DirectX implementa una serie de modelos de sombreador. Con HLSL, puedes crear sombreadores programables similares a C para la canalización de Direct3D. Cada modelo de sombreador se basa en las funcionalidades del modelo antes de implementar más funcionalidades con menos restricciones.

El modelo de sombreador 1 comenzó con DirectX 8 e instrucciones de nivel de ensamblado y de tipo C incluidos. Este modelo tiene muchas limitaciones causadas por el hardware del sombreador programable temprano. El modelo de sombreador 2 y 3 se expandió considerablemente en el número de instrucciones, y los sombreadores de constantes podrían usar. Son mucho más eficaces que el modelo de sombreador 1, pero siguen teniendo algunas de las limitaciones existentes del primer modelo de sombreador.

A partir de Windows Vista, el modelo de sombreador 4 es un rediseño completo. Permite instrucciones y constantes ilimitadas (dentro de las restricciones de hardware de la máquina), tiene objetos con plantilla para que el muestreo de texturas sea más limpio y más eficaz, y tiene las restricciones más mínimas de cualquier modelo de sombreador. Sin embargo, requiere el modelo de controlador de Windows que solo está disponible en el sistema operativo Windows Vista (o posterior).

Perfiles de sombreador

Un perfil de sombreador es el destino para compilar un sombreador; en esta tabla se enumeran los perfiles de sombreador admitidos por cada modelo de sombreador.

Modelo de sombreador Perfiles de sombreador
Modelo de sombreador 1 vs_1_1
Modelo de sombreador 2 ps_2_0, ps_2_x, vs_2_0, vs_2_x, ps_4_0_level_9_0, ps_4_0_level_9_1, ps_4_0_level_9_3, vs_4_0_level_9_0, vs_4_0_level_9_1, vs_4_0_level_9_3, lib_4_0_level_9_1, lib_4_0_level_9_3
Modelo de sombreador 3 ps_3_0, vs_3_0
Modelo de sombreador 4 cs_4_0, gs_4_0, ps_4_0, vs_4_0, cs_4_1, gs_4_1, ps_4_1, vs_4_1, lib_4_0, lib_4_1
Modelo de sombreador 5 cs_5_0, ds_5_0, gs_5_0, hs_5_0, ps_5_0, vs_5_0, lib_5_0 (aunque gs_4_0, gs_4_1, ps_4_0, ps_4_1, vs_4_0 y vs_4_1 se introdujeron en el modelo de sombreador 4.0, el modelo de sombreador 5 agrega compatibilidad con estos perfiles de sombreador para búferes estructurados y búferes de direcciones de bytes).
Modelo de sombreador 6 cs_6_0, ds_6_0, gs_6_0, hs_6_0, ps_6_0, vs_6_0, lib_6_0

Diferencias entre Direct3D 9 y Direct3D 10:

  • Direct3D 9 introdujo los modelos de sombreador 1, 2 y 3.
  • Direct3D 10 introdujo el modelo de sombreador 4.
  • Direct3D 10.1 introdujo el modelo de sombreador 4.1.

Perfiles de efecto

Un perfil de efecto es el destino para compilar un efecto o sombreador; en esta tabla se enumeran los perfiles de efecto admitidos por cada versión de Direct3D.

Diferencias entre Direct3D 9 y Direct3D 10:

  • Direct3D 9 introdujo perfiles de marco de efecto fx_1_0 y fx_2_0.
  • Direct3D 10 introdujo fx_4_0 de perfil de marco de efecto.
  • Direct3D 10.1 introdujo el perfil de marco de efecto fx_4_1.
  • Direct3D 11 introdujo fx_5_0 de perfil de marco de efecto.

Nota

Estos perfiles de efectos heredados están en desuso.

Referencia de HLSL