Escuela líder en innovación y excelencia académica.
De nuestros estudiantes están trabajando en la industria.
De nuestros estudiantes son recomendados por egresados y profesionales de la industria.
¿Qué Aprendés En Intro a Shaders para Videojuegos?
Programación de shaders e inteligencia artificial
- GLSL y HLSL: estructura del lenguaje, variables, funciones y coordenadas para comprender cómo el código produce una imagen y qué cambia entre ambos lenguajes.
- IA aplicada a shaders: diferencias entre escritura manual y generación asistida, con vocabulario técnico para expresar el efecto buscado mediante prompts.
- Tiempo y color: osciladores, interpolación y operaciones en RGB y HSB para construir movimiento y paletas animadas.
Imágenes procedurales y renderizado mediante código
- Formas y coordenadas UV: funciones de borde, transformaciones y subdivisión del espacio para generar figuras, patrones y desplazamientos.
- Texturas y feedback: lectura de imágenes y reutilización del frame anterior para producir persistencia, acumulaciones y transformaciones progresivas.
- Patrones, fractales y raymarching: combinación de ruido e iteraciones, funciones de distancia y cálculo de iluminación para crear imágenes y volúmenes definidos matemáticamente.
Materiales y Niagara en Unreal Engine
- Shader Graph: materiales aditivos y con mezcla alfa, animación y distorsión de UV para resolver transparencias, movimiento y apariencia de los efectos.
- Particle System: emisión, vida, velocidad, forma, gravedad, colisión y color para construir impactos y comportamientos de partículas.
- Blender, texturas y estelas: mallas con pivotes y UV, exportación FBX, Trail Renderer y flipbooks como componentes de efectos compuestos.
Shader Graph y VFX en Unity
- Shader Graph: materiales aditivos y con mezcla alfa, animación y distorsión de UV para resolver transparencias, movimiento y apariencia de los efectos.
- Particle System: emisión, vida, velocidad, forma, gravedad, colisión y color para construir impactos y comportamientos de partículas.
- Blender, texturas y estelas: mallas con pivotes y UV, exportación FBX, Trail Renderer y flipbooks como componentes de efectos compuestos.
Producción visual y optimización
- Preproducción de VFX: referencias, objetivo de gameplay y boceto para definir qué comunica el efecto y cómo evoluciona en el tiempo.
- Efectos aplicados: impactos de chispas, ataques de área y proyectiles con anticipación, clímax y disipación.
- Rendimiento y presentación: análisis de triángulos, overdraw y draw calls con Frame Debugger; batching, atlas y reducción de materiales; proyecto integrador y criterios para portfolio.
Comunicación entre aplicaciones
- OSC: envío de datos para controlar parámetros y uniforms de un shader desde dispositivos externos.
- Spout, Syphon y NDI: intercambio de imágenes entre aplicaciones locales o transmisión de video entre equipos conectados a una red.
- WebSockets: comunicación bidireccional con el navegador para conectar interfaces, sensores y parámetros de una experiencia gráfica.
Créditos: Nicolás Adriel Miranda Galeano.
¿Por qué estudiar Shaders para Videojuegos en Image Campus?
Formación que conecta arte y programación
El programa relaciona las operaciones de un shader con decisiones de color, forma, movimiento y lectura visual. Esta conexión permite trabajar sobre los recursos que necesitan artistas técnicos, game artists y desarrolladores cuando un efecto debe responder a una intención visual y a condiciones de ejecución concretas.
Cursada online en vivo
Las clases son 100% online en vivo. La plataforma Blackboard Ultra permite consultar grabaciones, entregar trabajos y acceder a la información de cursado, con Zoom Premium integrado para las clases sincrónicas.
Código y nodos dentro de los motores
La programación en GLSL, su relación con HLSL y el trabajo con Shader Graph, Material Editor y Niagara forman parte del mismo recorrido. Los fundamentos se vinculan con materiales y efectos en Unity y Unreal Engine, sin depender exclusivamente de una única forma de construcción.
Comunidad y networking
Image Campus reúne perfiles de arte para videojuegos, producción 3D, programación y efectos visuales. El intercambio con estudiantes de distintas áreas ofrece un entorno para compartir procesos, conocer otras especialidades y desarrollar colaboraciones.
Producción de efectos con un proceso completo
Los ejercicios incluyen impactos, ataques de área y proyectiles, desde las referencias y el boceto hasta la implementación y la revisión de rendimiento. El proyecto integrador reúne decisiones visuales y técnicas en una pieza, con orientación para continuar la práctica y construir un portfolio.
de Egresados
¿Sabés qué tan importante es el rol del Graphic Programmer?
¿Por qué elegir Image Campus?
Plan de Estudios y Contenido del Curso
Módulo 1: Lenguaje, tiempo, color e IA
- Escritura manual y generación de shaders asistida por IA.
- Lenguaje técnico de shaders para prompting.
- Diferencias entre GLSL y HLSL.
- Función main, vec4, variables, funciones propias y coordenadas cartesianas.
- Funciones seno, frecuencia, tiempo, mezcla de ondas y osciladores anidados.
- Interpolación con mix, conversión HSB/RGB, suma y multiplicación de colores y variaciones de fase.
Módulo 2: Formas, transformaciones y espacio
- Radio y ángulo; construcción de formas con step y smoothstep.
- Shaping functions, polígonos, movimiento, rellenos y bordes.
- Traslación, rotación y escalado; combinación de transformaciones.
- Subdivisión de coordenadas UV con fract.
- Grillas, combinación de subdivisiones y repetición de polígonos.
Módulo 3: Iteración, imágenes y feedback
- Ciclos for, patrones radiales e iteración sobre subdivisiones del espacio.
- Color por índice, valores pares e impares y acumulación visual.
- Carga de imágenes en buffers y lectura de texturas.
- Feedback entre frames y mezcla con resultados anteriores.
- Transformaciones de UV, modificadores, límites y decaimiento del feedback.
Módulo 4: Patrones generativos y fractales
- Combinación de ruido, funciones periódicas, subdivisión y color.
- Sistemas de funciones iteradas y operaciones de plegado.
- Boxfold, ballfold, cosinfold, valor absoluto, escalado y rotación.
- Orbit traps y color por iteración.
- Rotación de canales RGB, funciones seno y conversión HSV/RGB.
Módulo 5: Raymarching e iluminación
- Implementación del algoritmo y funciones de distancia para esferas y cubos.
- Unión, intersección, sustracción y combinación de figuras.
- Deformaciones, repetición por ejes y copias radiales.
- Sombras, niebla y manejo de cámaras.
- Luces puntuales, cálculo de normales y proyección de sombras.
- Árbol fractal 3D y túnel con seguimiento de cámara.
Módulo 6: Protocolos de comunicación
- OSC: direcciones, argumentos, bundles, timestamps, puertos y latencia.
- Control de uniforms desde un dispositivo móvil.
- Spout y Syphon: intercambio local de texturas entre aplicaciones y límites de uso.
- NDI: distribución de video por red, descubrimiento de dispositivos, calidad y latencia.
- WebSockets: servidor, cliente y comunicación de parámetros, interfaces y sensores.
- Panel web para controlar un shader en otro equipo.
- JP Shader Editor, Guipper y sistemas de adaptación de efectos a Unity y Unreal.
Módulo 7: Materiales y Niagara en Unreal Engine
- Material Editor: nodos, pines, expresiones y compilación a HLSL.
- Master materials, funciones e instancias de materiales.
- Modos de mezcla y modelos de sombreado.
- UV, panners, distorsión, máscaras y ruido.
- Nodos Custom, materiales de postproceso y parámetros por Blueprint/C++.
- Adaptación de GLSL a HLSL: tipos, funciones, texturas, uniforms y precisión.
- Niagara: sistemas, emisores, módulos y parámetros expuestos.
- Simulación CPU/GPU; renderers de sprite, mesh, ribbon y light.
- Colisiones, fuerzas, vectores y eventos entre emisores.
Módulo 8: Introducción y fundamentos de VFX
- Diferencias entre shaders y efectos visuales.
- Pipeline de producción: idea, referencia, boceto, implementación y optimización.
- Herramientas: Unity, Shader Graph, Blender y editor GLSL.
- Efectos con partículas, mallas, flipbooks, shaders y combinaciones híbridas.
- Gameplay, timing, forma, contraste y color.
- Análisis de referencias a partir de silueta, ritmo y paleta.
Módulo 9: Preproducción y entorno en Unity
- Objetivo del efecto, momento de activación e información para el jugador.
- Búsqueda de referencias, boards, GIFs y breakdowns.
- Elección de técnicas: partículas, mallas, flipbooks, shaders o combinaciones.
- Boceto de silueta y estructura temporal: anticipación, clímax y disipación.
- Instalación de Unity, armado del proyecto e importación del paquete de trabajo.
- Configuración del render pipeline y del espacio de color lineal.
- Entornos GLSL para prototipado: Kodelife, Posh Brolly y JP Shader Editor.
Módulo 10: Chispas y Particle System
- Materiales, shaders y texturas como componentes de un efecto.
- Shader aditivo en Shader Graph y textura pintada a mano.
- Emisión, vida, velocidad, forma, gravedad, colisión y color de partículas.
- Impactos mediante bursts.
- Variaciones de color y guardado como prefabs.
Módulo 11: Ataques de área
- Referencias, boceto, anticipación, clímax y disipación del efecto.
- Malla en Blender: cilindro, pivote, UV y exportación FBX.
- Texturas de impacto, onda expansiva y grieta en el suelo.
- Shader con mezcla alfa en Shader Graph y subemisores.
- Variaciones temáticas de fuego y naturaleza.
- Ajustes finales del efecto.
Módulo 12: Proyectiles, performance y proyecto integrador
- Referencias, malla y textura del proyectil.
- Estelas con Trail Renderer.
- Shader aditivo con scroll y distorsión de UV.
- Escena de prueba con disparo, movimiento y colisión.
- Efectos de impacto y de boca del arma.
- Variante eléctrica, flipbook propio y animación mediante texture sheets.
- Triángulos, overdraw, draw calls y Frame Debugger.
- Batching, atlas de texturas, orden de capas y reducción de materiales.
- Proyecto integrador desde el boceto hasta el efecto optimizado.
- Continuidad de práctica, portfolio y publicación de shaders en Shadertoy, Kodelife y GitHub.
Principales Herramientas
Información de cursado
Modalidad
Online
en vivo
Duración
12
Clases
Horario
Jueves
de 19 a 22 hs
y Sábados
de 10 a 13 hs
Inicio
14
Octubre
2027
Nivel
Avanzado
Requisitos
Acreditar conocimientos en programación con test de nivelación
Créditos: Agustin Grassi.
Nuestras clases online
Los estudiantes de Image Campus disponen de la plataforma educativa clase mundial Blackboard Ultra para volver a ver las grabaciones de clases online, entregar TPs, chequear asistencias, horarios de cursado, calificaciones, comunicación interna, foros y consultas, entre otras muchas prestaciones.
Para una experiencia de alta calidad en la transmisión de clases en vivo, accederán a la plataforma Zoom Premium, embebida en Blackboard.
Carreras y cursos relacionados
Tecnicatura Superior en Programación de Videojuegos Tecnicatura Superior en Desarrollo de Videojuegos con Unreal Engine, Unity y Godot Fundamentos de Programación para Videojuegos Level Design Programación C++ para Videojuegos Desarrollo de Videojuegos con Unreal Engine Desarrollo de Videojuegos con GodotÁreas donde trabajan nuestros egresados
Arte técnico para videojuegos.
Efectos visuales en tiempo real.
Desarrollo de shaders y materiales para motores
Programación gráfica y optimización visual
Producción 3D aplicada a experiencias interactivas
Instalaciones y experiencias inmersivas
Visuales generativos y producción audiovisual en tiempo real
Trabajos de Estudiantes
Algunas empresas donde trabajan nuestros egresados
Preguntas Frecuentes de Intro a Shaders para Videojuegos (FAQs)
Un shader es un programa que participa en el procesamiento de los gráficos de una aplicación. Permite calcular colores, modificar texturas, construir materiales, generar formas y controlar distintos aspectos de la imagen que se muestra en pantalla.
En videojuegos, los shaders se utilizan para producir efectos visuales en tiempo real, desde variaciones de color y animaciones de materiales hasta iluminación, distorsiones, postprocesamiento y representaciones tridimensionales generadas mediante código. Su funcionamiento está directamente relacionado con la GPU y el proceso de renderizado de cada frame.
El shader define operaciones de renderizado; el material reúne el shader y la configuración con la que se utiliza, como texturas, colores y otros parámetros. Un efecto visual o VFX es un resultado más amplio que puede combinar materiales con partículas, mallas, luces y animación.
Por ejemplo, el impacto de un hechizo puede reunir una onda expansiva sobre una malla, partículas de chispas y una textura animada. Cada componente necesita una apariencia, pero el efecto completo también depende de cómo se emite, cuánto dura y cómo se coordina con los demás. La relación entre estos elementos permite diseñar sistemas reutilizables y distinguir dónde modificar un comportamiento.
Shader Graph es una herramienta de Unity para construir shaders mediante nodos conectados. Cada nodo representa datos u operaciones, como leer una textura, mezclar colores o desplazar coordenadas UV. El grafo describe cómo se obtiene el resultado y genera el código correspondiente para el entorno de renderizado compatible.
En VFX puede utilizarse para crear materiales de partículas, transparencias, máscaras, disoluciones o distorsiones animadas. Las propiedades expuestas permiten ajustar valores desde el material y reutilizar un shader con distintas configuraciones. Trabajar con nodos conserva la necesidad de entender coordenadas, interpolación, color y costo de las operaciones: la representación visual facilita la construcción, pero el comportamiento sigue respondiendo a cálculos.
Material Editor es el entorno de Unreal Engine para definir materiales mediante expresiones conectadas. Permite trabajar sobre color, emisión, opacidad y otros atributos, además de animar coordenadas, utilizar máscaras e incorporar operaciones en HLSL mediante nodos Custom.
Niagara organiza efectos a partir de sistemas, emisores y módulos que controlan la generación y el comportamiento de partículas. Según la configuración, estas pueden representarse como sprites, mallas o ribbons y utilizar materiales que definan su apariencia. Ambas herramientas se complementan: el material puede resolver el brillo y la disolución de una chispa, mientras Niagara determina su emisión, trayectoria y duración. Un VFX suele necesitar esa coordinación entre comportamiento y renderizado.
GLSL y HLSL son lenguajes de programación de shaders. Comparten operaciones matemáticas y estructuras familiares, pero utilizan convenciones distintas. Por ejemplo, un vector de cuatro componentes se expresa como vec4 en GLSL y habitualmente como float4 en HLSL; la interpolación puede escribirse con mix o lerp, respectivamente.
Trasladar un shader exige revisar más que esos nombres. También cambian la forma de declarar entradas, acceder a texturas, recibir parámetros y conectarse con las etapas del renderizado. Unity y Unreal incorporan sus propias estructuras de trabajo. La comprensión de las operaciones permite adaptar el efecto, mientras que su implementación concreta debe respetar el motor, el render pipeline y la plataforma de destino.
La inteligencia artificial generativa puede producir borradores de código a partir de una descripción y ayudar a reformular operaciones de un shader. Para que la solicitud sea precisa, conviene indicar el entorno de ejecución, el lenguaje, las entradas disponibles y el comportamiento visual esperado. Pedir una distorsión de UV animada es más específico que solicitar un efecto llamativo.
El código generado necesita revisión y pruebas. Puede contener funciones incompatibles, asumir parámetros inexistentes o resolver el resultado con un costo excesivo. La evaluación incluye comprobar que compile, interpretar sus operaciones, observar la imagen y medir su ejecución. El conocimiento de programación gráfica permite convertir una respuesta de IA en una implementación que pueda mantenerse y ajustarse dentro del proyecto.
Para trabajar con shaders resulta útil comprender variables, tipos de datos, funciones, condiciones y ciclos, junto con vectores y operaciones matemáticas. También hace falta interpretar cómo se relacionan coordenadas, tiempo, color y texturas. Estos conceptos permiten anticipar qué cambia en la imagen cuando se modifica un parámetro o una operación.
En un editor de nodos, esa lógica aparece distribuida en conexiones; en código, se expresa mediante instrucciones. Un technical artist puede combinar ambas formas de trabajo para construir materiales, comunicar necesidades con programación y detectar problemas de integración. La matemática necesaria depende del efecto: una animación UV sencilla exige menos desarrollo que una técnica de iluminación o un sistema de raymarching.
Las coordenadas UV indican dónde se consulta una textura sobre una superficie. Modificarlas antes de la lectura permite desplazar, escalar, rotar o distorsionar la imagen sin alterar su archivo. Un desplazamiento que depende del tiempo genera scroll; una función de ruido puede variar la dirección o intensidad de la deformación.
Estas operaciones se utilizan en flujos de energía, humo estilizado, ondas y estelas. El resultado también depende del modo de repetición de la textura, de las UV de la malla y de la escala de los parámetros. Dos objetos con el mismo material pueden mostrar el efecto de manera distinta si sus coordenadas o proporciones cambian, por lo que la revisión debe incluir la geometría donde se aplica.
Estos efectos suelen combinar partículas, materiales, texturas y mallas. Las chispas pueden partir de una emisión breve con variaciones de velocidad, color y duración. Un ataque de área puede reunir una señal de anticipación, una onda expansiva y partículas de impacto. Un proyectil agrega desplazamiento, estela y una reacción al colisionar.
La producción comienza por definir qué información necesita el jugador y analizar referencias. Después se organizan las etapas temporales y se eligen los componentes adecuados. La coherencia de color, escala y timing permite que el conjunto se perciba como una misma acción. La prueba dentro del juego ayuda a ajustar su lectura y rendimiento cuando aparecen otros personajes, escenarios y efectos simultáneos.
Un flipbook es una secuencia de imágenes que representa la evolución de un efecto. Los frames pueden organizarse en una grilla dentro de una textura y mostrarse consecutivamente mediante una animación de coordenadas. Así es posible reproducir una explosión, humo o una descarga eléctrica sobre partículas o superficies.
La cantidad de frames, la resolución y la velocidad de reproducción influyen en su apariencia y consumo de memoria. También importa cómo se combina con el material: una secuencia puede utilizar transparencias o emisión según el resultado buscado. El flipbook puede integrarse con otros componentes, como chispas o una onda expansiva, para aumentar la complejidad visual sin calcular toda la evolución del efecto mediante una simulación volumétrica en tiempo real.
Una estela representa visualmente el recorrido de un objeto. En Unity, Trail Renderer genera una franja a partir de posiciones sucesivas y permite ajustar su duración, ancho y color. El material define cómo se dibuja esa geometría, por ejemplo con una textura animada o una apariencia emisiva.
Este recurso se utiliza en proyectiles, armas y desplazamientos rápidos para comunicar dirección y velocidad. La duración controla cuánto recorrido permanece visible, mientras que la distancia entre puntos influye en la suavidad y cantidad de geometría. Una estela muy extensa o densa puede aumentar el costo y dificultar la lectura de la acción; sus parámetros necesitan evaluarse con el movimiento real del objeto y la cámara del juego.
El overdraw ocurre cuando varias superficies cubren los mismos píxeles y requieren procesarlos repetidamente. Es habitual en efectos que superponen partículas transparentes, humo, luces o planos con materiales animados. Un efecto con poca geometría puede resultar costoso si ocupa mucha pantalla y acumula numerosas capas.
Su impacto depende del material, la resolución, el hardware y la cantidad de efectos visibles. Algunas decisiones para reducirlo son limitar la superposición, ajustar el tamaño de las partículas y revisar cuánto espacio vacío contienen las texturas. La optimización necesita mediciones en una escena representativa: reducir partículas sin observar el resultado puede perder calidad sin resolver el cuello de botella que realmente afecta al frame.
Los draw calls son solicitudes de dibujo que la CPU envía a la GPU a través de la API gráfica. Preparar esas solicitudes implica configurar recursos y estados de renderizado. Una escena con numerosos materiales o componentes separados puede aumentar ese trabajo, aunque el costo final depende de cómo el motor organiza las entregas.
Unity dispone de técnicas como batching e instancing para reducir o agrupar parte de esas operaciones cuando los recursos son compatibles. Compartir materiales y utilizar atlas de texturas puede favorecer ciertas formas de agrupación. Frame Debugger ayuda a observar cómo se dibuja un frame; las herramientas de profiling permiten medir su costo. Optimizar exige evaluar conjuntamente solicitudes de dibujo, geometría, transparencias y complejidad de shaders.
El raymarching recorre rayos desde una cámara mediante pasos sucesivos para encontrar una superficie. Una implementación habitual utiliza funciones de distancia firmada o SDF, que describen la distancia a formas definidas matemáticamente. Esa información permite calcular los avances del rayo y reconocer cuándo alcanza el objeto.
Las SDF pueden representar esferas, cubos y combinaciones obtenidas mediante unión, intersección o sustracción. El resultado puede incorporar iluminación, sombras y niebla sin usar una malla poligonal como representación principal de esas formas. Su costo depende, entre otros factores, de las iteraciones, la complejidad de la escena y los cálculos adicionales. Es una técnica útil para exploración procedural y determinados efectos, cuya viabilidad debe evaluarse según el proyecto.
Estos protocolos y tecnologías resuelven conexiones diferentes. OSC transporta mensajes de control, como valores que modifican un shader. Spout y Syphon permiten compartir imágenes entre aplicaciones del mismo equipo, en Windows y macOS respectivamente. NDI se utiliza para distribuir video mediante una red, mientras que WebSockets mantiene una comunicación bidireccional entre un cliente, como un navegador, y un servidor.
La elección depende de si hace falta transmitir parámetros o imágenes y de si las aplicaciones funcionan en una misma computadora o en varios equipos. Una instalación puede combinar un panel web para controlar valores, un motor para generar gráficos y otra aplicación para mostrar o transmitir la imagen. Resolución, latencia y compatibilidad forman parte de esa integración.
Los uniforms son parámetros que una aplicación proporciona al shader y que se mantienen constantes durante una llamada de dibujo. Pueden representar tiempo, resolución, posición del cursor, colores o intensidades. El shader utiliza esos valores en sus cálculos, y la aplicación puede actualizarlos entre ejecuciones para modificar el resultado.
Por ejemplo, un parámetro de tiempo puede desplazar una textura, mientras que otro controla la amplitud de una distorsión. En los motores, parte de este intercambio aparece como propiedades de materiales, instancias o parámetros de sistemas de efectos. Separar los valores ajustables de las operaciones permite reutilizar una misma lógica con distintas configuraciones y conectar la apariencia del efecto con interacciones, animaciones o datos externos.
Un buffer almacena datos que pueden utilizarse durante el procesamiento gráfico. En un flujo de imágenes, una textura de renderizado puede conservar el resultado de una pasada para que otra operación lo lea. El feedback incorpora información de una imagen previa al cálculo de la siguiente, creando una relación entre frames.
Esta técnica permite producir rastros, ecos, acumulaciones y deformaciones progresivas. La mezcla con la imagen anterior y su decaimiento determinan cuánto permanece visible el resultado. También es necesario organizar los recursos de lectura y escritura para evitar conflictos. Aunque puede formar parte del postprocesamiento, el feedback describe una reutilización temporal concreta y no es un requisito de todos los efectos que modifican una imagen ya renderizada.
Los patrones procedurales se calculan mediante reglas, coordenadas y funciones, en lugar de depender únicamente de una imagen almacenada. Ruido, ondas y subdivisiones pueden combinarse para producir superficies y variaciones que cambian con el tiempo. Sus parámetros permiten ajustar escala, ritmo y distribución sin reemplazar una textura de origen.
Los fractales incorporan estructuras que reaparecen a distintas escalas. Algunos shaders los construyen mediante iteraciones de escalado, rotación, inversión o plegado. El color puede depender del recorrido de esas iteraciones, por ejemplo mediante orbit traps. La posibilidad de animar parámetros ofrece resultados dinámicos, pero la cantidad de pasos y operaciones influye en el costo. Su uso en tiempo real exige equilibrar detalle visual y rendimiento.