Shader

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

La tecnología shaders es cualquier unidad escrita en un lenguaje de sombreado que se puede compilar independientemente. Es una tecnología reciente y que ha experimentado una gran evolución destinada a proporcionar al programador una interacción con la GPU hasta ahora imposible. Los shaders son utilizados para realizar transformaciones y crear efectos especiales, como por ejemplo iluminación, fuego o niebla. Para su programación los shaders utilizan lenguajes específicos de alto nivel que permitan la independencia del hardware.

Historia[editar]

En el 2000 la serie 2 de tarjetas GeForce permitía a la GPU hacerse cargo de funciones de transformación e iluminación que hasta ahora debía hacerlas la CPU, sin embargo no fue hasta la GeForce 3 (2001) que se incluyó la posibilidad de programarlas con la primera versión del modelo de sombreado. Existen numerosas versiones, se debe tener en cuenta que cuanto más reciente es la versión más limita el número de tarjetas gráficas sobre las que el programa puede operar correctamente.

Lenguajes de sombreado[editar]

Para la escritura de esas instrucciones, los programadores hacen uso de lenguajes de programación diseñados específicamente para ello. Cada uno de estos lenguajes de programación necesita enlazarse mediante una API, entre otras DirectX u OpenGL. Existen otros lenguajes pero los siguientes son los más conocidos.

  • HLSL es la implementación propiedad de Microsoft, la cual colaboró junto a Nvidia para crear un lenguaje de sombreado. Este lenguaje se debe utilizar junto a DirectX (la primera versión para la que se puede utilizar es DirectX 8.0). Anteriormente al DirectX 8 (DirectX 7, 6, 5...) se utilizaba otro método el cual era más complicado y complejo para ser utilizado. (Entre lo que era el lenguaje, creación de objetos, sonidos, partículas, entre otras).
  • GLSL es el lenguaje desarrollado por el grupo Khronos. Está diseñado específicamente para su uso dentro del entorno de OpenGL. Sus diseñadores afirman que se ha hecho un gran esfuerzo para lograr altos niveles de paralelismo. Su diseño se basa en C y RenderMan como modelo de lenguaje de sombreado.
  • CG lenguaje propiedad de la empresa Nvidia resultante de su colaboración con Microsoft para el desarrollo de un lenguaje de sombreado. Su principal ventaja es que puede ser usado por las APIs OpenGL y DirectX. Otra ventaja de este lenguaje es el uso de perfiles. Estos lenguajes no son totalmente independientes del hardware por lo tanto es recomendable crear programas específicos para diferentes tarjetas gráficas. Los perfiles de CG se encargan de elegir para su ejecución el más adecuado de los programas disponibles para el hardware.

A la hora de estudiar rendimientos es difícil aseverar nada. No sólo se deben tener en cuenta el fabricante (Nvidia o ATI) sino la versión del modelo de sombreado, el controlador instalado y el lenguaje usado. Usualmente mientras más avanzada sea la versión shaders la cantidad de objetos, texturas, efectos ambientales (Sol, Nubes 3D, Humos, Fuegos Realistas, Aguas, Iluminación) serán mayores con formas, colores y texturas más realistas.

Las GPU modernas llevan shaders unificados

Enlaces externos[editar]