Shader

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.

Contenido

Historia

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

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.

Tipos de procesadores shader

A continuación se presentan los diferentes tipos de procesadores shader que la GPU tiene, las cantidades de cada uno crecen con celeridad entre generaciones de gráficas. Los shaders trabajan de la siguiente manera. El programador envía un conjunto de vértices que forman su escena gráfica a través de un lenguaje de propósito general. Todos los vértices pasan por el vertex shader donde pueden ser transformados y se determina su posición final. El siguiente paso es el geometry shader donde se pueden eliminar o añadir vértices. Posteriormente los vértices son ensamblados formando primitivas que son rasterizadas, proceso en el cual las superficies se dividen en puntos que corresponden a píxeles de la pantalla. El Píxel/Fragment shader se encarga de modificar estos puntos. Por último se producen cierto tests entre ellos el de profundidad que determina que punto es dibujado en pantalla.

  • Vertex shader: Permite transformaciones sobre coordenadas, normal, color, textura, etc. de un vértice. No puede saberse el orden entre vértices ni pasarse información entre ellos (esto ocurre también en el resto de tipos).
  • Geometry shader: Es capaz de generar nuevas primitivas dinámicamente así como de modificar existentes. Un ejemplo claro es la decisión de utilizar o eliminar vértices en una malla polígonal según la posición del observador aplicando la técnica [nivel de detalle LOD][1].
  • Píxel/Fragment shader: En primer lugar aclarar la difererencia entre fragmento y píxel. Desde la Khronos group se apuesta por diferenciar que fragmento es lo que se procesa puesto que existen múltiples relacionados con un mismo píxel de la pantalla. La terminología seguida por Microsoft y Nvidia es la de píxel que puede dar lugar a confusión ya que no se trabaja con lo de la pantalla sino con los de cada figura. En este procesador se pueden hacer diversas transformaciones como cambiar la profundidad o trabajar con texels así como calcular efectos de iluminación con gran precisión. Todo lo ejecutado debe determinar el color que debería aplicarse sobre el píxel en caso de ser usado. También es útil para modificar la profundidad.

Enlaces externos


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Shader — sind Hardware oder Software Module, die bestimmte Rendering Effekte bei der 3D Computergrafik implementieren. Inhaltsverzeichnis 1 Hardware Shader 1.1 Verarbeitungskette 2 Programmierung …   Deutsch Wikipedia

  • Shader — Shad er, n. One who, or that which, shades. [1913 Webster] …   The Collaborative International Dictionary of English

  • Shader — Un shader (le mot est issu du verbe anglais to shade pris dans le sens de « nuancer ») est une suite d instructions donnée à un ordinateur, utilisé en image de synthèse, pour paramétrer une partie du processus de rendu réalisé par une… …   Wikipédia en Français

  • Shader — A shader in the field of computer graphics is a set of software instructions, which is used by the graphic resources primarily to perform rendering effects. Shaders are used to allow a 3D application designer to program the graphics processing… …   Wikipedia

  • shader — vaizdo inžinierius statusas T sritis profesijos apibrėžtis Televizijos studijos inžinierius, atsakingas už vaizdų, gaunamų iš įvairių kamerų, kokybę. Jis valdo visas vaizdų įrašymo, mišrinimo ir jų perdavimo į televizijos siųstuvą operacijas.… …   Inžinieriai, technikai ir technologai. Trikalbis aiškinamasis žodynėlis

  • shader — shade ► NOUN 1) comparative darkness and coolness caused by shelter from direct sunlight. 2) a colour, especially with regard to how light or dark it is. 3) a position of relative inferiority or obscurity: your bravery puts me in the shade. 4) a… …   English terms dictionary

  • shader — noun see shade II …   New Collegiate Dictionary

  • shader — See shade. * * * …   Universalium

  • shader — noun a) One who, or that which, shades. b) A set of software instructions used to calculate rendering effects on graphics hardware …   Wiktionary

  • Shader — Фактура; Оттенок; Модуль создания эффекта подсветки поверхности объекта …   Краткий толковый словарь по полиграфии


Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.