Controlar la estética visual de un filtro de realidad aumentada va mucho más allá de colocar objetos 3D sobre la cara. En Spark AR puedes tomar la imagen completa de la cámara, procesarla como textura y transformar sus colores, canales y luminosidad para crear experiencias visuales únicas. Aquí se explica paso a paso cómo lograrlo usando nodos de control de imagen, gradient steps y archivos LUT.
¿Cómo extraer la textura de cámara y asignarla a un material?
El punto de partida es convertir lo que la cámara captura en una textura manipulable dentro del patch editor. Para ello se utiliza Texture Extraction [0:27], una opción disponible en el menú de cámara que genera un asset de textura arrastrable.
Una vez obtenida, se crea un nuevo material —en este caso llamado "Fondo"— configurado en modo flat [0:42] para evitar que las luces de la escena alteren los colores. Después se conecta la textura al material y se prepara un canvas con un rectángulo que cubra toda la pantalla [1:01]. Es fundamental ordenar la jerarquía de la escena: primero el fondo, luego la cara, después los objetos y por último el canvas, porque el orden de renderizado [1:07] depende directamente de esa jerarquía.
¿Qué hace el nodo Swizzle con los canales de color?
El nodo Swizzle [1:28] permite seleccionar qué canales de color (R, G, B, alfa) se envían a la salida. Si solo se pasa el canal R, se obtiene una aproximación a blanco y negro, pero con un detalle importante: al sobrescribir también el canal alfa, las zonas oscuras se vuelven transparentes y dejan pasar la imagen original de la cámara.
La solución es ser más específico: definir la salida como R, R, R, 1 [1:58], asignando el mismo canal a los tres componentes de color y fijando alfa en uno para que sea completamente opaco. También se puede experimentar con el canal verde o el azul (B, B, B, 1) [2:12] para obtener tonalidades distintas según el entorno.
¿Cómo usar Gradient Step para controlar el color por luminosidad?
El Gradient Step [2:30] —también conocido como Gradient Map en otros programas— toma la información de un solo canal y la redistribuye en rangos de color personalizados. Se conecta la salida del Swizzle al gradient y se configuran varios steps:
- De 0 a 0.3: tonos oscuros, cercanos al negro.
- De 0.3 a 0.6: tonos intermedios, como morados o azules apagados.
- De 0.6 a 1: tonos más claros y desaturados.
Cada rango se ajusta hasta lograr el look deseado [3:02]. Si un color resulta demasiado saturado, basta con cambiarlo por uno más apagado para suavizar la estética.
¿Cómo mezclar la imagen original con los gradients?
El nodo Mix [3:26] funciona como un potenciómetro: con el factor en cero se muestra la imagen original; con uno, el resultado procesado por los gradient steps. Valores intermedios como 0.5 o 0.9 [3:40] permiten conservar rastros de la imagen real mientras se aplica la corrección de color, ofreciendo un control muy fino sobre la mezcla.
¿Cómo aplicar un LUT y crear un look de game over?
Un archivo LUT (Look-Up Table) [4:22] es una imagen que redefine todos los colores de una escena de golpe. Desde el AR Library se importa el patch asset llamado Fast Color LUT [4:30] y se le asigna una imagen LUT descargada o creada en Photoshop. Un dato crítico: al importar la imagen hay que desactivar la compresión [5:06] para que no pierda calidad.
Para diferenciar el estado de juego normal del game over, se preparan dos versiones visuales:
- Versión normal: con los gradient steps o la cámara sin procesar.
- Versión game over: con un LUT rojizo u oscuro que transmita la sensación de derrota [4:00].
Ambas se conectan a un segundo nodo Mix cuyo factor alfa se enlaza a la animación de game over [5:40]. Cuando el jugador pierde, la animación interpola el valor de cero a uno en aproximadamente un segundo, haciendo la transición de forma fluida. Al reiniciar la partida, un Receiver con la señal de inicio de juego resetea [6:20] la animación para volver al estado visual normal.
Con estas herramientas —Swizzle, Gradient Step, Mix y LUT— puedes personalizar cada aspecto visual de tu filtro y adaptarlo a distintos estados del juego. ¿Qué combinación de colores y efectos vas a probar en tu proyecto?