Introducción a los shaders HeavyM para crear tus propios VFX

Introducción

¿Te interesa crear tus propios efectos visuales en HeavyM? En este artículo te presentamos las apasionantes posibilidades creativas que ofrecen los shaders. Por cierto, ¿qué es un shader?

Un sombreador es un programa informático que se ejecuta en la tarjeta gráfica de tu ordenador. Permite manipular rápidamente los datos que se muestran en la pantalla o en el proyector de vídeo: los píxeles.

Es una tecnología poco conocida porque se considera abstracta, pero los sombreadores están muy presentes en nuestra vida cotidiana. Estos pequeños programas informáticos simulan con realismo efectos visuales complejos como la lluvia, la niebla, el reflejo de la luz, el relieve de los objetos, etc. Por eso se utilizan mucho en videojuegos, películas que requieren efectos especiales, platós de televisión... y en el arte digital, el campo en el que nos centramos aquí.

En el software HeavyM, los sombreadores incorporados ofrecen muchas posibilidades. También es posible importar tus propios shaders, ¡aumentando así infinitamente el número de combinaciones!

Ejemplo de videojuego que utiliza shaders: Minecraft

Ejemplo de videojuego que utiliza shaders: Minecraft

Proyección cartográfica del rendimiento de la mina

Ejemplo de uso de un sombreador durante una ejecución de mapeado de proyección

Parte 1: Tecnología de sombreado

Para comprender mejor la idea de los sombreadores, tomemos como ejemplo la creación de un dibujo a mano. Hay que dibujar uno a uno los elementos que lo componen. Empezarías con formas geométricas como círculos, rectángulos y líneas y luego añadirías colores. Procederías paso a paso como si tuvieras que copiar el dibujo manualmente. Con los sombreadores, el proceso es mucho más rápido porque todas estas operaciones se realizan a la vez, como un sello aplicado a tu hoja de papel con un solo gesto. Lo que es aún mejor es que este sello puede cambiar en función de la información proporcionada, como la hora, la posición o los colores de los elementos ya presentes en tu hoja.

¿Por qué son rápidos los sombreadores?

Los shaders son programas muy ligeros porque, a diferencia de softwares como HeavyM, que contienen varios cientos de miles de líneas de código, un shader suele contener sólo unos cientos de líneas como máximo. La velocidad de los shaders se debe principalmente a la arquitectura del hardware que permite su ejecución: la tarjeta gráfica. Para utilizar HeavyM, sin duda hay que prestar atención a esta cuestión, ya que permite multiplicar las posibilidades que ofrece el software.

A diferencia de la CPU del ordenador, que procesa las tareas una tras otra, los cálculos de la tarjeta gráfica se realizan en paralelo. En lugar de tener un único procesador con una potencia de cálculo considerable, la tarjeta gráfica tiene multitud de pequeños procesadores. Esto significa que pueden realizar tareas simultáneamente. Gracias a esta paralelización, los shaders pueden realizar cálculos gráficos complejos en unos pocos milisegundos.

La ventaja de los sombreadores: arte interactivo

Gracias a la velocidad de ejecución de los shaders, es posible crear imágenes en tiempo real, es decir, que se generan en el momento en que se ven. El término tiempo real se utiliza en contraste con el término precomputado, que se aplica a un archivo de vídeo que se renderiza fotograma a fotograma. Los cálculos de renderizado pueden llevar mucho tiempo, ¡hasta varios días! Con los shaders, se pueden manipular directamente las imágenes, como en un videojuego. El arte digital interactivo se basa en este principio de tiempo real porque permite generar visuales que reaccionan a la música o a los movimientos de la gente. Para ver dos ejemplos de performance que mezclan música y visuales, eche un vistazo a la obra de Weirdcore para los conciertos de Aphew Twin o Actuaciones de Nonotak.

Tipos de sombreadores

Los shaders no son más que archivos de texto con una extensión determinada. Veremos que existen distintos tipos de shaders. El factor común es que están codificados en el lenguaje GLSL: OpenGL Shading Language. Existen otros tipos de shaders dependiendo de la plataforma y el hardware, pero aquí nos centraremos en los shaders basados en OpenGL. Para utilizar shaders en HeavyM, se necesita una tarjeta gráfica que soporte OpenGL 2.0.

Sombreadores de píxeles o de fragmentos

El fragment shader o pixel shader es un shader cuyo propósito es calcular el color de cada píxel individualmente. Toma como entrada los datos de cada píxel de la imagen (posición, coordenadas de textura, color) y emite su color.

Son estos shaders los que te interesará utilizar con HeavyM. Suelen ser archivos .FRAG, o .FS en el caso del formato ISF. El formato ISF proporciona un estándar para los fragmentos de shaders GLSL, de modo que puedan ser interpretados más fácilmente por las aplicaciones interactivas.

Sombreadores de vértices

Los sombreadores de vértices se utilizan para transformar los picos de entrada en píxeles. 

Es un archivo .VS que a veces acompaña al sombreador de píxeles, tiene el mismo nombre y se encuentra en la misma carpeta.

¿Dónde encontrar shaders?

No necesitas saber programación para utilizar shaders con HeavyM. Además de la biblioteca incorporada que existe en el software, existen plataformas para encontrar nuevos shaders sin tener que crearlos tú mismo. La comunidad de artistas de shaders está creciendo y a menudo puedes utilizar libremente las obras que comparten.

Para encontrar .FRAG: http://glslsandbox.com/ y https://www.shadertoy.com/

Atención: los archivos .FRAG no son compatibles con HeavyM. Es necesario convertirlos a .ISF y a continuación proporcionamos un método para hacerlo.

Asegúrese de comprobar los derechos de uso en la licencia que suele especificarse al principio del código del shader. Si no hay ninguna indicación en particular, los derechos de autor se aplican por defecto y le aconsejamos encarecidamente que hable con el autor del programa si desea hacer un uso comercial del mismo.

Desarrolla tus propios sombreadores

Para crear tus propios shaders, te aconsejamos que utilices directamente el formato ISF para que sean compatibles con un máximo de aplicaciones. El objetivo de este artículo no es proporcionar un aprendizaje del código GLSL, el lenguaje utilizado por el formato ISF. Para ello sugerimos la lectura de los muy completos sitios :

Sin embargo, para empezar, no dudes en ir al sitio de la ISF y modificar los shaders existentes. Este sitio interactivo permite visualizar en directo las modificaciones realizadas en el sombreador. También es posible partir de una plantilla básica.

La principal desventaja de crear y editar shaders es que no hay retroalimentación de errores. Cuando hay un problema de diseño, el shader no se ejecuta ni muestra nada. Entonces es difícil encontrar el origen del error. Por lo tanto, es necesario ser riguroso en el código.

Parte 2: Sombreadores en HeavyM

El software HeavyM ofrece unos cientos de shaders nativos en su biblioteca de efectos visuales incorporada. En el software se pueden utilizar varios tipos de efectos, en función de las características utilizadas.

Efectos de sombreado en las formas

Al hacer clic en los iconos rojos de la parte derecha de la interfaz, 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 grupo tienen el mismo aspecto. Para tener diferentes efectos para diferentes formas, es necesario crear otros grupos y añadir formas a ellos.

HeavyM Sombreadores - Efectos sobre las formas

Actualmente no es posible añadir o modificar sombreadores de efectos existentes en esta categoría.

Sombreadores generadores de imágenes

Añade shaders generadores de imágenes como fuentes, en el panel accesible 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 ser visualizados. Vincula la fuente al reproductor haciendo clic en el icono de destino. Los shaders generadores de imágenes no tienen una duración predeterminada porque se trata de un programa que se ejecuta en bucle. Sin embargo, puede cambiar la duración de visualización de la fuente.

Sombreadores - Efectos generativos

Procesamiento de sombreadores en jugadores

Puede aplicar efectos de tratamiento de imágenes al reproductor. Para ello, seleccione el reproductor y añada efectos en las Propiedades, en la parte inferior izquierda, utilizando el botón +. Los efectos se añaden uno tras otro. Cada reproductor es independiente, por lo que la fuente y los efectos de procesamiento serán diferentes entre los reproductores, incluso si los reproductores están en el mismo grupo.

Shaders - Efectos de jugador

Procesamiento de sombreadores en secuencias

También se pueden aplicar sombreadores de procesamiento de imágenes a toda la salida de vídeo. Estos efectos son relativos a las secuencias. Para añadir un efecto de procesamiento a una secuencia, haga clic en la rueda dentada y añada un sombreador utilizando el botón +. Los efectos de procesamiento en las secuencias son los mismos que los efectos de procesamiento en los reproductores.

Sombreadores HeavyM - Efectos de secuencia

Sombreadores de transición en secuencias

Las transiciones también están relacionadas con la secuencia y se aplican a toda la salida de vídeo. Por defecto, la transición aplicada es un fundido de 0,20s. Modifique esta transición en el menú accesible haciendo clic en la rueda dentada de la secuencia. Las transiciones sólo se aplican a la entrada de la secuencia.

HeavyM - Transiciones

Importar shaders

Hemos visto que existen dos categorías principales de shaders en HeavyM: shaders de generación y shaders de procesamiento. HeavyM facilita la combinación de shaders de estas dos categorías. HeavyM proporciona shaders por defecto en las pestañas Library de cada ventana de selección de shaders. Todos estos shaders son .FS y, por tanto, cumplen la norma ISF. Para importar tus propios shaders en la pestaña My Shaders, es necesario respetar esta norma. De este modo, los parámetros de tus shaders pueden modificarse fácilmente con la interfaz de HeavyM.

¿Quieres importar otros formatos de shaders a HeavyM? Es muy fácil convertir shaders utilizando estas herramientas: Desktop ISF Editor (Windows beta/Mac) con funciones "Import from GLSL Sandbox" e "Import from Shadertoy".

Por último, si quieres comprender en detalle la arquitectura del formato ISF para crear el tuyo propio, te aconsejamos que eches un vistazo a la documentación del formato ISF: https://docs.isf.video/

Parte 3: control de los sombreadores

Los shaders permiten crear efectos visuales en tiempo real que pueden modificarse en directo, sin tener que pasar por una etapa de renderizado. Aquí tienes las distintas posibilidades para controlar tus efectos y crear visuales interactivos.

Los parámetros del sombreador pueden modificarse haciendo clic en la rueda dentada del icono de la fuente. La escala de valores está normalizada entre 0 y 100 y no corresponde a una unidad concreta. En HeavyM se ofrecen diferentes modos de variación de los parámetros, encuéntralos haciendo clic en la flecha situada junto a cada parámetro del sombreador.

El modo Valor fijo

Este es el modo por defecto que le permite cambiar el valor con el ratón. La desventaja es que sólo puedes cambiar un parámetro a la vez. También puedes introducir un valor con el teclado.

Los generadores de valor

HeavyM ofrece 7 generadores de valores que permiten modificar automáticamente los parámetros de los sombreadores. Se trata de generadores de tipo LFO (oscilador de baja frecuencia), como los que se encuentran en los programas de música o en los sintetizadores. Para cada generador, existen dos modos de animación: BPM o temporal. El modo BPM está vinculado al Tempo general en la parte inferior derecha de la interfaz, simbolizado por el icono del metrónomo. El modo temporal permite definir una frecuencia independiente del Tempo general.

HeavyM - LFOs

Control mediante un análisis sólido

En la parte inferior derecha de la interfaz se encuentra el módulo de análisis del sonido. Permite detectar variaciones de amplitud en 3 rangos de frecuencia diferentes: Graves Medios Altos. Puedes encontrar las variaciones de estos valores en los modos de variación de los parámetros del shader.

Sombreadores HeavyM - Análisis del sonido

Control MIDI

¿Desea controlar manualmente varios parámetros al mismo tiempo? Utiliza el protocolo MIDI. Existen muchos controladores MIDI para música en el mercado. Todos ellos son compatibles con HeavyM. Conecta tu hardware en la ventana de configuración, accesible a través del icono naranja situado en la esquina superior derecha de la interfaz. A continuación, el modo de aprendizaje MIDI te permite configurar el enlace entre los parámetros del sombreador y las teclas de tu hardware.

HeavyM Shaders - MIDI

Conclusión

Las posibilidades creativas que ofrecen los sombreadores son infinitas. Estos programas le permiten aprovechar la potencia de su tarjeta gráfica con sólo unos clics. Su ordenador le permite acceder fácilmente al arte generativo, que consiste en crear obras a partir de algoritmos. Muchos artistas digitales utilizan esta técnica, por ejemplo Antoine Schmidt, Miguel Chevalier, Vera Molnár, Du Zhenjun, Daniel Rozin... 

Con HeavyM, hemos visto que es muy fácil utilizar y controlar los shaders. ¡Combínalos sin límites para crear tus propios efectos visuales y tu propia identidad!