Lenguaje de sombreado de alto nivel


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 Cg de Nvidia , ya que se desarrolló junto con él. Las primeras versiones de los dos idiomas se consideraban idénticas, solo que se comercializaban de manera diferente. [3] Los sombreadores HLSL pueden permitir aumentos profundos de velocidad y detalle, así como muchos efectos especiales en gráficos de computadora 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 acierto/acierto más cercano/miss). Se ejecuta un sombreador de vértices para cada vértice enviado por la aplicación, y es el principal responsable de transformar el vértice del espacio del objeto al espacio de la vista, generar coordenadas de textura y calcular los 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) pasan por 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 utiliza estos datos para generar/degenerar (o teselar ) primitivas adicionales o para cambiar el tipo de primitivas, que luego se envían al rasterizador.

Las GPU enumeradas son el hardware que primero admitió las especificaciones dadas. Los fabricantes generalmente admiten todos los modelos de sombreadores inferiores a través de 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 superior de la API de DirectX 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 tenía, apuntando a su tubería T&L de función fija.


Una escena que contiene varios sombreadores 2D HLSL 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 añaden mediante un shader aplicado finalmente a toda la escena.