Aqui podras encontrar muchisima información recolectada a lo largo de los años sobre los shaders. Especificamente los fragment shaders.
Un shader es un programa que se ejecuta directo en la GPU. Se utilizan para calcular el color de cada pixel, manipular vertices y procesar millones de particulas en simultaneo.
Los shaders tienen una arquitectura de programación particular que aprovecha las ventajas del funcionamiento de la placa de video, esta arquitectura de programación consiste principalmente en el procesamiento paralalelo donde se calcula todos los pixeles, la cantidad de vertices y posiciones de particulas en simultaneo a diferencia de la CPU que es mucho mas potente pero su procesamiento es lineal.
Patricio Gonzales vivo en su libro "the book of shaders" lo compara con la impresora de gutemberg
En este video de los cazadores de mitos podemos ver una ejemplificación visual de como funciona este proceso de paralelo(GPU) vs lineal(CPU).
Los lenguajes de programación que se utilizan para programa shaders son GLSL o HLSL.
Todas las plataformas actuales para manejar gráficos avanzados utilizan shaders. Algunas de estas plataformas pueden ser : processing, p5js , three.js, openframeworks, babylon.js en el caso de glsl y Unity,Unreal Engine en el caso de HLSL. Cada plataforma tiene su manera particular de implementación pero las bases estructurales son las mismas.
Los shaders se utilizan para dar un acabado gráfico de gran calidad al producto final. Sus usos específicos son generación de materiales dinámicos, filtros de postprocesado, programación de visuales en tiempo real(live coding), efectos visuales de alto nivel.
Shadertoy es la biblioteca de Alejandría pero de los shaders. En este sitio podremos encontrar un repositorio gigante de shaders de efectos visuales, patrones generativos, postprocesado, fluidos. Aquí podremos encontrar código con el que experimentar y cambiar desde el mismo sitio.
Mail de contacto: julian.d.puppo@gmail.com
Hacer click en los siguientes tutoriales para ver los shaders en el editor.
Agradecimientos a Kali por la colaboración en los capitulos 10,11,12 de raymarching y fractales.