De Wikipedia, la enciclopedia libre
  (Redirigido desde HLSL )
Saltar a navegación Saltar a búsqueda
Una escena que contiene varios sombreadores HLSL 2D diferentes. La distorsión de la estatua se logra puramente físicamente, mientras que la textura del marco rectangular al lado se basa en la intensidad del color. El cuadrado del fondo se ha transformado y rotado . La transparencia parcial y el reflejo del agua en primer plano se agregan mediante un sombreador aplicado finalmente a toda la escena.

El lenguaje de sombreado de alto nivel [1] o el lenguaje de sombreado de alto nivel [2] ( HLSL ) es un lenguaje de sombreado patentado desarrollado por Microsoft para la API de Direct3D 9 para aumentar el lenguaje ensamblador de sombreado y se convirtió en el lenguaje de sombreado requerido para el modelo de sombreador unificado de Direct3D 10 y superior.

HLSL es análogo al lenguaje de sombreado GLSL utilizado con el estándar OpenGL . Es muy similar al lenguaje de sombreado de Nvidia Cg, ya que se desarrolló junto con él. Las primeras versiones de los dos idiomas se consideraron idénticas, solo que se comercializaron de manera diferente. [3] Los sombreadores HLSL pueden permitir un gran aumento de velocidad y detalle, así como muchos efectos especiales en gráficos de computadora en 2D y 3D . [ cita requerida ]

Los programas HLSL vienen en seis formas: sombreadores de píxeles (fragmento en GLSL), sombreadores de vértices , sombreadores de geometría , sombreadores de cálculo , sombreadores de teselación ( sombreadores de casco y dominio) y sombreadores de trazado de rayos(Sombreadores de generación de rayos, sombreadores de intersección, sombreadores de cualquier hit / hit más cercano / miss). Se ejecuta un sombreador de vértices para cada vértice que envía la aplicación, y es el principal responsable de transformar el vértice del espacio de objetos en el espacio de visualización, generar coordenadas de textura y calcular coeficientes de iluminación como los vectores normal, tangente y bitangente del vértice. Cuando un grupo de vértices (normalmente 3, para formar un triángulo) atraviesa el sombreador de vértices, su posición de salida se interpola para formar píxeles dentro de su área; este proceso se conoce como rasterización .

Opcionalmente, una aplicación que utilice una interfaz Direct3D 10/11/12 y hardware Direct3D 10/11/12 también puede especificar un sombreador de geometría. Este sombreador toma como entrada algunos vértices de una primitiva (triángulo / línea / punto) y usa estos datos para generar / degenerar (o teselar ) primitivas adicionales o para cambiar el tipo de primitivas, que luego se envían al rasterizador.

D3D11.3 y D3D12 introdujeron Shader Model 5.1 [4] y versiones posteriores 6.0. [5]

Comparación de modelos de sombreado [ editar ]

Las GPU enumeradas son el hardware que primero admitió las especificaciones dadas. Los fabricantes generalmente admiten todos los modelos de sombreadores inferiores mediante controladores. Tenga en cuenta que los juegos pueden afirmar que requieren una determinada versión de DirectX, pero no necesariamente requieren una GPU que cumpla con la especificación completa de esa versión, ya que los desarrolladores pueden usar una versión de API de DirectX más alta para apuntar a hardware con especificaciones de Direct3D más bajas; por ejemplo, DirectX 9 expone características de hardware de nivel DirectX7 que DirectX7 no hizo, apuntando a su canalización T&L de función fija.

Comparación de sombreado de píxeles [ editar ]

  • PS 1.0 : 3dfx Rampage inédito , DirectX 8.
  • PS 1.1 : GeForce 3 , DirectX 8.
  • PS 1.2 : vicepresidente de 3Dlabs Wildcat, DirectX 8.0a.
  • PS 1.3 : GeForce 4 Ti , DirectX 8.0a.
  • PS 1.4 : Radeon 8500-9250 , Matrox Parhelia , DirectX 8.1.
  • Shader Model 2.0 : Radeon 9500-9800 / X300-X600 , DirectX 9.
  • Shader Model 2.0a - GeForce FX / PCX - modelo optimizado, DirectX 9.0a.
  • Shader Model 2.0b : modelo de sombreador Radeon X700-X850 , DirectX 9.0b.
  • Shader Model 3.0 : Radeon X1000 y GeForce 6 , DirectX 9.0c.
  • Shader Model 4.0 : Radeon HD 2000 y GeForce 8 , DirectX 10.
  • Shader Model 4.1 : Radeon HD 3000 y GeForce 200 , DirectX 10.1.
  • Shader Model 5.0 : Radeon HD 5000 y GeForce 400 , DirectX 11.
  • Shader Model 5.1 - GCN 1+ , Fermi +, DirectX 12 (11_0 +) con WDDM 2.0.
  • Shader Model 6.0 - GCN 1+, Kepler +, DirectX 12 (11_0 +) con WDDM 2.1.
  • Shader Model 6.1 - GCN 1+, Kepler +, DirectX 12 (11_0 +) con WDDM 2.3.
  • Shader Model 6.2 - GCN 1+, Kepler +, DirectX 12 (11_0 +) con WDDM 2.4.
  • Shader Model 6.3 - GCN 1+, Kepler +, DirectX 12 (11_0 +) con WDDM 2.5.
  • Shader Model 6.4 - GCN 1+, Kepler +, Skylake +, DirectX 12 (11_0 +) con WDDM 2.6.
  • Shader Model 6.5 - GCN 1+, Kepler +, Skylake +, DirectX 12 (11_0 +) con WDDM 2.7.
  • Shader Model 6.6 - GCN 1+, Kepler +, Skylake +, DirectX 12 (11_0 +) con WDDM 2.9.

"32 + 64" para instrucciones ejecutadas significa "32 instrucciones de textura y 64 instrucciones aritméticas".

Comparación de sombreadores de vértices [ editar ]

Ver también [ editar ]

  • Direct3D
  • DirectX
  • Trazado de rayos DirectX
  • GLSL
  • Lenguaje de sombreado

Notas al pie [ editar ]

  1. ^ "Escribir sombreadores HLSL en Direct3D 9" . Microsoft Docs . Consultado el 22 de febrero de 2021 .
  2. ^ "Lenguaje de sombreado de alto nivel (HLSL)" . Microsoft Docs . Consultado el 22 de febrero de 2021 . CS1 maint: parámetro desalentado ( enlace )
  3. ^ "Industrias Fusion :: Preguntas frecuentes sobre Cg y HLSL ::" . 24 de agosto de 2012. Archivado desde el original el 24 de agosto de 2012.
  4. ^ "Objetos de Shader Model 5.1" . Microsoft Docs . Consultado el 22 de febrero de 2021 .
  5. ^ "HLSL Shader Model 6.0" . Microsoft Docs . Consultado el 22 de febrero de 2021 .
  6. ^ a b c d e f "Diferencias de sombreado de píxeles" . Microsoft Docs . Consultado el 22 de febrero de 2021 .
  7. ^ a b c d e Mirón, Craig; Mitchell, Jason L. (julio de 2003). "Introducción al lenguaje de sombreado de alto nivel DirectX 9" . Microsoft Docs . Consultado el 22 de febrero de 2021 .
  8. ^ a b c Shimpi, Anand Lal . "NVIDIA presenta GeForce FX (NV30)" . AnandTech . Consultado el 22 de febrero de 2021 .
  9. ^ Wilson, Derek. "ATI Radeon X800 Pro y XT Platinum Edition: llega R420" . AnandTech . Consultado el 22 de febrero de 2021 .
  10. ^ a b Shader Model 3.0, Ashu Rege, Grupo de tecnología de desarrolladores de NVIDIA, 2004.
  11. ^ a b El sistema Direct3D 10, David Blythe, Microsoft Corporation, 2006.
  12. ^ a b "Registros - ps_4_1" . Microsoft Docs . Consultado el 22 de febrero de 2021 .
  13. ^ a b "Registros - ps_5_0" . Microsoft Docs . Consultado el 22 de febrero de 2021 .
  14. ^ a b c d "Diferencias de sombreado de vértice" . Microsoft Docs . Consultado el 22 de febrero de 2021 .

Enlaces externos [ editar ]

  • Guía de programación para HLSL en Microsoft Docs
  • Introducción al lenguaje de sombreado de alto nivel DirectX 9 , (ATI) AMD developer central
  • Introducción y tutorial de HLSL de Riemer (incluye código de muestra)
  • Introducción a HLSL
  • Especificación de lenguaje intermedio de DirectX (DXIL)