Uso de shaders
En resumen
Los shaders son pequeños programas gráficos que se ejecutan en la GPU y crean efectos visuales generativos en tiempo real. En el video mapping, proporcionan texturas infinitas y dinámicas sin necesidad de utilizar archivos de vídeo pesados. Con programas como HeavyM, puedes importar fácilmente formatos estándar como ISF y manipular efectos visuales generativos sin necesidad alguna de programar.
¿Qué es un shader?
Un shader es un tipo de programa informático diseñado específicamente para ejecutarse en una unidad de procesamiento gráfico (GPU). El término ‘shader’ proviene de ‘shade’ (sombra), ya que uno de los primeros usos de los shaders fue simular sombras y reflejos en los gráficos 3D. Sin embargo, hoy en día, Los shaders se utilizan para una amplia variedad de tareas de procesamiento gráfico, desde la aplicación de texturas y colores hasta la generación de efectos especiales complejos.
Shaders funcionan a un nivel muy bajo, lo que significa que tienen un control directo y preciso sobre los píxeles individuales que componen una imagen o un vídeo. Pueden manipular los datos de la imagen con gran rapidez y con un mínimo de recursos, lo que los hace especialmente útil para aplicaciones gráficas en tiempo real, como los videojuegos, la realidad virtual y video mapping.
Los diferentes tipos de shaders
Existen diferentes tipos de shaders, entre los que se incluyen los shaders de vértices, que manipulan los puntos de datos 3D (vértices); los shaders de geometría, que generan nuevas formas a partir de estos puntos; y los shaders de fragmentos (también llamados shaders de píxeles), que determinan el color final de cada píxel de la pantalla. Los shaders suelen escribirse en lenguajes de programación especializados, como GLSL (OpenGL Shading Language) o HLSL (High-Level Shading Language) para DirectX.
Sombreadores de píxeles o de fragmentos
El «fragment shader» o «pixel shader» es un shader diseñado para calcular el color de cada píxel de forma individual. Toma como entrada los datos de cada píxel de la imagen (posición, coordenadas de textura, color) y devuelve su color.
Estos shaders son los que más te interesará utilizar con HeavyM. Suelen ser .Archivos .FRAG o .FS, en el caso del formato ISF. El formato ISF establece un estándar para los fragmentos GLSL shaders, lo que facilita su interpretación por parte de aplicaciones interactivas.
Sombreadores de vértices
Los sombreadores de vértices se utilizan para transformar los vértices en píxeles.
Son .Archivos .VS que a veces acompañan al pixel shader, comparten el mismo nombre y deben estar ubicados en la misma carpeta.
Shaders de efectos de forma HeavyM
Al hacer clic en los iconos rojos situados a la derecha de la interfaz de HeavyM, se accede a categorías de efectos que se adaptan automáticamente a las formas dibujadas. Estos efectos están vinculados a los grupos del panel de capas de la izquierda. Todas las formas de un mismo grupo comparten el mismo aspecto. Para aplicar efectos diferentes a distintas formas, debes crear grupos adicionales e añadirles formas.

Actualmente no es posible añadir ni modificar el código de los shaders de efectos existentes en esta categoría.
Shaders de generación de imágenes
Puedes añadir shaders de generación de imágenes como fuentes en el panel al que se accede a través del icono blanco situado en la barra de herramientas vertical de la derecha. Estos shaders requieren la creación de un reproductor para poder mostrarse. A continuación, vincula la fuente al reproductor haciendo clic en el icono con forma de diana. Los shaders de generación de imágenes no tienen una duración predeterminada, ya que son programas que se ejecutan en bucle. No obstante, puedes ajustar la duración de visualización de la fuente.
Actualmente no es posible añadir ni modificar el código de los shaders de efectos existentes en esta categoría.
Shaders de generación de imágenes
Puedes añadir shaders de generación de imágenes como fuentes en el panel al que se accede a través del icono blanco situado en la barra de herramientas vertical de la derecha. Estos shaders requieren la creación de un reproductor para poder mostrarse. A continuación, vincula la fuente al reproductor haciendo clic en el icono con forma de diana. Los shaders de generación de imágenes no tienen una duración predeterminada, ya que son programas que se ejecutan en bucle. No obstante, puedes ajustar la duración de visualización de la fuente.

Procesamiento de shaders en los reproductores
Tienes la opción de aplicar efectos de procesamiento de imagen al reproductor. Para ello, selecciona el reproductor y añade efectos en el panel «Propiedades», situado en la parte inferior izquierda, mediante el botón «+». Los efectos se añaden de forma secuencial. Cada reproductor es independiente, por lo que los efectos de origen y de procesamiento variarán de un reproductor a otro, incluso si los reproductores pertenecen al mismo grupo.

Importar o crear shaders
¿Dónde se pueden encontrar los shaders?
No hace falta saber programar para utilizar shaders con HeavyM. Además de la biblioteca que ya viene incluida en el software, Hay plataformas en las que puedes encontrar nuevos shaders sin tener que crearlos tú mismo. La comunidad de creadores de shaders está creciendo rápidamente, y A menudo puedes utilizar las obras que comparten para proyectos no comerciales.
Para encontrar los shaders .FS: https://www.interactiveshaderformat.com/
Para encontrar los shaders .FRAG: http://glslsandbox.com/ y https://www.shadertoy.com/
Nota: Los archivos .FRAG no son compatibles con HeavyM. Es necesario convertirlos a .ISF; a continuación te indicamos cómo hacerlo.
Asegúrate de consultar los derechos de uso que figuran en la licencia, que suelen especificarse al principio del código del shader. Si no hay indicaciones específicas, se aplica la ley de derechos de autor por defecto, por lo que te recomendamos encarecidamente que consultes con el autor si tienes intención de utilizar el shader con fines comerciales.
Importación de shaders
Como ya se ha mencionado, En HeavyM hay dos categorías principales de shaders: los shaders de generación y los shaders de procesamiento. HeavyM te permite combinar fácilmente shaders de estas dos categorías. HeavyM ofrece shaders predeterminados en las pestañas «Biblioteca» de cada ventana de selección de shaders. Todos estos shaders están en formato .FS y, por lo tanto, cumplen con el estándar ISF. Para importar tus propios shaders a la pestaña «Mis shaders», Deben cumplir con este estándar. De este modo, los parámetros de tus shaders se pueden modificar fácilmente desde la interfaz de HeavyM.
¿Quieres importar otros formatos de shaders a HeavyM? Es muy sencillo convertir los shaders con estas herramientas:
- https://magicmusicvisuals.com/utils/shadertoy_to_isf.php - Beta
- El software ISF Editor (solo para Mac) utilizando las funciones “Importar desde GLSL Sandbox” e “Importar desde Shadertoy”
Cómo desarrollar tus propios shaders
Para crear tus propios shaders, recomendamos utilizar directamente el formato ISF para garantizar la compatibilidad con el mayor número posible de aplicaciones. El objetivo de este artículo no es enseñar a programar en GLSL, el lenguaje utilizado por el formato ISF. Para ello, recomendamos consultar los siguientes sitios web, que ofrecen información muy completa:
- https://thebookofshaders.com/ para GLSL
- https://docs.isf.video/ para ISF
Sin embargo, para empezar, No dudes en visitar la página web de ISF y modificar los shaders existentes. Esta página web interactiva te permite ver los cambios que se realizan en el shader en tiempo real. También es posible partir de una plantilla básica.
El principal inconveniente a la hora de crear y modificar shaders es que no se reciben mensajes de error. Cuando hay un problema de diseño, es posible que el shader no se ejecute o no muestre nada, lo que dificulta identificar el origen del error. Por lo tanto, es fundamental ser meticuloso a la hora de programar.
Para continuar
Gestión de la reactividad al sonido y a la música
Esta guía ha sido redactada por HeavyM, una empresa especializada en video mapping desde 2013.
Si tienes alguna pregunta, comentario, sugerencia, etc., utiliza este formulario de contacto: https://help.heavym.net/hc/requests/new. Respuesta garantizada en un plazo de 24 horas.
Preguntas más frecuentes (FAQ)
¿Qué es un shader en el video mapping?
Un shader es un programa informático que se utiliza para calcular efectos de renderizado en el hardware gráfico con un alto grado de flexibilidad. En el video mapping, los shaders se utilizan para generar texturas dinámicas en tiempo real y efectos visuales que reaccionan al audio directamente en la GPU, en lugar de reproducir bucles de vídeo prerenderizados.
¿Qué es el formato ISF?
ISF son las siglas de «Interactive Shader Format». Se trata de un estándar basado en GLSL (OpenGL Shading Language) que permite compartir y utilizar fácilmente efectos visuales generativos en diferentes programas de VJing y de video mapping, garantizando la compatibilidad entre plataformas.
¿Es necesario saber programar para utilizar los shaders?
No, no hace falta ser programador. Aunque los shaders se escriben en código (GLSL), los programas modernos de video mapping como HeavyM te permite importar archivos ISF ya creados o utilizar efectos de sombreado integrados con solo arrastrarlos y soltarlos sobre tus formas.