Vertex shader

De Wikipedia, la enciclopedia libre
(Redirigido desde «Vertex Shader»)
Saltar a: navegación, búsqueda

Vertex shader es una herramienta capaz de trabajar con la estructura de vértices de figuras modeladas en 3D, y realizar operaciones matemáticas sobre ella para definir colores, texturas e incidencia de la luz. Esto da libertad a los programadores para realizar diferentes efectos, desde la deformación de un objeto hasta la recreación de las olas del mar.

En caso de representaciones gráficas de pelo se basaría en los vértices de la malla dando un efecto más realista al resultado, con lo que conlleva una rápida ejecución de la imagen puesto que se utiliza el hardware específico, en este caso el de las tarjetas gráficas.

Lo que en realidad pretende esta herramienta es adicionar a una malla de polígonos elementos que se alojan en los vértices de dichos polígonos o simplemente modificarlos.

Incluido en Direct3D y OpenGL, el vertex shader puede reproducir diferentes efectos realistas. El vertex shader ha evolucionado con el tiempo encontrándose en la actualidad en la versión 5.0.

Programación[editar]

Para poder trabajar y programarlos se utilizan varios lenguajes, con diversos niveles de abstracción. Las tarjetas de video pueden ser programadas directamente a través de sus propias interfaces de lenguaje ensamblador, llamado para las GPUs ARB; sin embargo, la dificultad que esto conlleva y su poca portabilidad ha implicado el desarrollo de varios lenguajes que facilitan el proceso y "traducen" a la tarjeta de video las instrucciones. Microsoft ha desarrollado su alternativa en DirectX, llamada HLSL (High Level Shader Language) que vendría a ser un lenguaje de alto nivel bastante más fácil de programar que el ARB, con el cual también es posible realizar dichas tareas. También está disponible, a través de OpenGL el lenguaje GLSL, una alternativa libre. Nvidia ha desarrollado también una alternativa propia para resolver el mismo problema en su hardware, llamado Cg.

Véase también[editar]

Enlaces externos[editar]