Pixel and Vertex Shaders

ps_01
Unas palabras acerca de los Shaders…

Para comenzar dejo dos enlaces a un muy buen tutorial hecho hace casi una década por Trevor Hogan. Parte 1 y Parte 2.

En realidad no conozco una traducción en ningún idioma de la palabra “shade”, es una de estas palabras tramposas para la cual no tenemos una definición exacta. Aunque por si sola generalmente significa sombreado, en Ingles podemos encontrar expresiones como “what shade of green for walls” y la palabra mágicamente toma otro sentido.
Puede ser gradiente, sombreado o algo paulatino dependiendo del uso, pero ahora…un shader que es?
Podemos definir a un shader como algo que produce o modifica una sombra o un gradiente(tono) de color. Es un generador/modificador de algo, ahora veamos que es lo que genera o cambia:

Pixel Shader – Píxeles
Vertex Shader – Vértices
Geometry Shader – Geometría (grupos de vertices)

ps_02

Cuando los shaders aun no existían, los desarrolladores tenían un solo procedimiento para obtener la imagen final. Podían aplicar filtro bilineal sobre texturas, transparencias, pero no podían distorsionar una textura o modelo en tiempo real para obtener efecto de por ejemplo una lupa o distorsión por el calor de una antorcha. Esto ocurre porque todo el proceso de render pasa por el mismo código que genera la imagen final (mismo pipeline). Tenemos una textura? Le aplicamos siempre el mismo filtrado (bilineal) y la mostramos en pantalla. Efecto de partículas? Genial y como son texturas, aplicamos el filtro, a lo sumo transparencia y el trabajo termina ahí.
Claro había trucos como Procedural texture y Multitexturing pero no fueron suficientes y allá por el 2004 se crea una extensión llamada GLSL que en conjunto con OpenGL 2.0 permitió generar efectos especiales usando un lenguaje basado en “ANSI C“.
Para no dejar de lado otras tecnologías les menciono el HLSL y dejo un muy buen tutorial de los chicos de Remedy (creadores de Max Payne y Alan Wake entre otros grandes juegos)

ps_03

A completar…

Deja un comentario

Para proteger el blog de SPAM, le pedimos que complete la tarea:WordPress CAPTCHA