19/07/2018
En el mundo de los efectos visuales (VFX) y la composición digital, la distorsión de lente es un enemigo y un aliado. Es un enemigo porque complica la integración de elementos generados por computadora (CG) en metraje real, y un aliado porque, cuando se maneja correctamente, añade una capa de realismo indispensable. Existen principalmente dos métodos para abordar este desafío: usar modelos matemáticos complejos que describen el comportamiento de la lente, o utilizar un mapa de deformación. Hoy nos sumergiremos en el segundo método, uno de los más flexibles y potentes del arsenal de un compositor: el STMap. Este artículo es una guía completa para entender, crear y aplicar mapas de deformación STMap, centrándonos en el flujo de trabajo entre software de matchmoving como SynthEyes y software de composición como Nuke.

¿Qué es Exactamente un STMap y Por Qué es Tan Útil?
Imagina que tienes una imagen y quieres decirle a cada uno de sus píxeles exactamente a dónde debe moverse. Eso, en esencia, es un STMap. Es una imagen que funciona como un mapa de coordenadas. Las siglas ST son análogas a UV, que a su vez son análogas a XY; simplemente representan los dos ejes de un espacio 2D. En un STMap, los canales de color Rojo (R) y Verde (G) no almacenan información de color, sino datos de posición.
- El Canal Rojo (R) contiene el valor de la coordenada U (horizontal) del píxel de origen.
- El Canal Verde (G) contiene el valor de la coordenada V (vertical) del píxel de origen.
Estos valores de coordenadas están "normalizados", lo que significa que van de 0 a 1. Un valor de (0,0) en los canales RG corresponde a la esquina inferior izquierda de la imagen de origen, mientras que (1,1) corresponde a la esquina superior derecha. Cuando aplicas un STMap a una imagen, el nodo de composición lee, para cada píxel de la imagen de destino, las coordenadas almacenadas en el STMap y "recoge" el color del píxel correspondiente en la imagen de origen. El resultado es una imagen deformada según las instrucciones del mapa.
La verdadera magia del STMap radica en su universalidad. Cada software de matchmoving (SynthEyes, 3DEqualizer, PFTrack) y cada software de composición (Nuke, Fusion, After Effects) tiene sus propios modelos matemáticos para la distorsión de lente. Transferir esos complejos coeficientes y funciones entre programas puede ser una pesadilla o, directamente, imposible. El STMap resuelve este problema "horneando" (baking) toda esa complejidad matemática en una simple imagen. Al ser un archivo de imagen estándar (como un .exr o .tif), es agnóstico al software, garantizando que la distorsión que calculaste en tu programa de tracking sea exactamente la misma que aplicarás en tu composición.
STMap vs. Modelos Matemáticos: ¿Cuándo Usar Cada Uno?
Aunque los STMaps son increíblemente potentes, no son la solución para todos los casos. Es crucial entender sus fortalezas y debilidades en comparación con los modelos de distorsión basados en funciones matemáticas.
| Característica | STMap (Mapa de Deformación) | Modelo Matemático (Funciones y Coeficientes) |
|---|---|---|
| Compatibilidad | Excelente. Al ser una imagen, es universalmente compatible entre diferentes programas. | Pobre. Cada software utiliza su propio modelo, lo que dificulta la transferencia de datos. |
| Complejidad de la Distorsión | Puede representar cualquier tipo de distorsión, por muy compleja o irregular que sea. | Limitado a lo que el modelo matemático específico puede describir. |
| Distorsión Animada (Zoom/Foco) | Muy difícil de manejar. Interpolar entre dos STMaps es problemático y poco práctico. | Ideal. Simplemente se animan los valores de los coeficientes para simular cambios de zoom o foco. |
| Precisión | Alta, pero susceptible a artefactos si no se usan altas profundidades de bits (ej. 32-bit float) o si se aplica corrección gamma por error. | Muy alta y precisa, ya que se basa en cálculos matemáticos directos. |
| Flujo de Trabajo (Workflow) | Requiere generar archivos de imagen intermedios (los mapas). | Más directo dentro de un mismo ecosistema de software. |
En resumen: utiliza un workflow basado en STMap cuando necesites transferir una distorsión de lente estática entre diferentes programas. Si necesitas animar la distorsión a lo largo del tiempo (por ejemplo, un lens-breathing o un zoom), un modelo matemático será una opción mucho más eficiente.
El Flujo de Trabajo Completo: Creando STMaps con SynthEyes y Nuke
Ahora, vamos a la parte práctica. Este es el proceso paso a paso para generar un mapa para desdistorsionar tu metraje original (undistortion map) y otro para volver a distorsionar tus elementos CG (redistortion map).
Paso 1: Calibración de la Lente en SynthEyes
Todo comienza con un buen análisis de la lente. Para ello, necesitas filmar una cuadrícula de calibración (test pattern). SynthEyes tiene una herramienta de autocalibración excelente para esto.
- Filma la cuadrícula, asegurándote de que cubra todo el encuadre y moviendo la cámara para capturar la distorsión en los bordes.
- En SynthEyes, utiliza la función "Lens Grid auto-calibration" para analizar el metraje.
- Una vez que el software haya calculado los parámetros de distorsión, guarda el resultado como un "Lens Preset". Nómbralo de forma clara, incluyendo el tipo de lente y la distancia focal si es necesario (ej. "Lente50mm_f2.8").
Paso 2: Generar el Mapa Base para Desdistorsión en Nuke
Este mapa es una simple rampa de coordenadas que servirá como punto de partida.

- En Nuke, crea un nodo `Constant`. Su tamaño debe ser exactamente el mismo que el de tu metraje original.
- Añade un nodo `Expression` después del `Constant`. En sus propiedades, introduce las siguientes expresiones para los canales rojo y verde:
r = (x+0.5) / widthg = (y+0.5) / height- Nota importante: El `+0.5` es crucial. Compensa un ligero desfase en cómo el nodo STMap interpreta la posición del centro de un píxel.
- Guarda esta imagen. Es fundamental hacerlo en un formato de alta profundidad de bits para evitar "banding" o escalonamiento. Usa EXR (32-bit float) o TIFF (16-bit) asegurándote, en el caso del TIFF, de que la opción "raw data" esté marcada para que Nuke no aplique ninguna corrección de color o gamma. Llamemos a este archivo `base_map_1920x1080.exr`.
Paso 3: Crear el Mapa de Desdistorsión (Undistortion Map)
Ahora vamos a usar SynthEyes para deformar nuestro mapa base y crear el mapa que corregirá nuestro metraje.
- Abre SynthEyes e importa el `base_map_1920x1080.exr` que acabas de crear. Asegúrate de especificar la profundidad de bits correcta al importar (float para EXR).
- En el diálogo "Image Preparation", ve al panel "Lens" y selecciona el "Lens Preset" que creaste en el paso 1.
- Ve al panel "Summary", haz clic en el botón "Lens Workflow" y elige la opción "Redistorted(2)". Verás cómo tu mapa base se deforma y, lo más importante, se hace más grande. Este "overscan" es necesario para no perder los píxeles de los bordes que se "estiran" durante la desdistorsión.
- Guarda esta nueva imagen deformada usando el botón "Save Sequence". De nuevo, utiliza un formato de alta profundidad de bits como EXR. Este es tu mapa de desdistorsión: `undistort_map.exr`.
Paso 4: Generar el Mapa Base para Redistorsión
Este paso es similar al paso 2, pero crearemos un mapa base que coincida con el tamaño de nuestra imagen desdistorsionada.
- De vuelta en Nuke, crea un nuevo nodo `Constant`. Su tamaño debe ser el mismo que el del archivo `undistort_map.exr` (que será más grande que tu metraje original).
- Añade un nodo `Expression` con las mismas fórmulas: `r = (x+0.5) / width` y `g = (y+0.5) / height`.
- Guarda esta imagen como `base_map_overscan.exr`.
Paso 5: Crear el Mapa de Redistorsión (Redistortion Map)
Finalmente, crearemos el mapa que nos permitirá distorsionar nuestros elementos CG para que coincidan con el metraje original.
- En SynthEyes, importa el `base_map_overscan.exr`.
- En el diálogo "Image Preparation", selecciona de nuevo tu "Lens Preset". Esta vez, marca la casilla "Apply Distortion". Esto aplicará la distorsión de la lente a tu mapa base.
- Guarda la imagen resultante. Este es tu mapa de redistorsión: `redistort_map.exr`.
Aplicando los Mapas en Nuke
Con los dos mapas generados, el proceso de aplicación en Nuke es muy sencillo gracias al nodo `STMap`.
Para Desdistorsionar el Metraje Original:
Conecta tu metraje original a la entrada `source` del nodo `STMap` y tu `undistort_map.exr` a la entrada `stmap`. El resultado será tu metraje corregido, sin distorsión y con un tamaño mayor (overscan). Sobre este metraje desdistorsionado es donde realizarás tu matchmove.
Para Distorsionar Elementos CG:
Tus elementos CG deben ser renderizados con las dimensiones del formato desdistorsionado (overscan). Conecta tu render CG a la entrada `source` del nodo `STMap` y tu `redistort_map.exr` a la entrada `stmap`. El resultado será tu elemento CG perfectamente distorsionado, listo para ser compuesto sobre el metraje original.
Preguntas Frecuentes (FAQ)
- ¿Qué calidad puedo esperar de la distorsión basada en STMap?
- La calidad es excelente, comparable a la de los nodos matemáticos como LensDistortion, siempre y cuando se tomen precauciones. El error más común es usar una baja profundidad de bits (como un JPEG o un PNG de 8 bits) para el mapa, lo que introduce artefactos de posterización. Usa siempre EXR de 32 o 16 bits (half-float) o TIFF de 16 bits.
- ¿Puedo usar este método para una lente con zoom?
- Es muy complicado. Un STMap representa la distorsión en una distancia focal estática. Para un zoom, necesitarías generar un STMap para cada fotograma, lo cual es muy ineficiente. En esos casos, es mucho mejor trabajar con modelos matemáticos y animar los parámetros.
- ¿Qué parámetros del nodo STMap son los más importantes?
- Además de las entradas de imagen, los parámetros clave son:
- uv: Aquí especificas qué canales de tu STMap contienen las coordenadas. Por defecto es `rgb.red` y `rgb.green`, que es lo correcto para nuestro workflow.
- channels: Define a qué canales de la imagen de origen se aplicará la deformación. Por defecto es `all`, que suele ser lo deseado.
- filter: El algoritmo de filtrado para el remuestreo de píxeles. `Cubic` es un buen punto de partida que ofrece un buen equilibrio entre nitidez y rendimiento.
Dominar el flujo de trabajo con STMap es una habilidad fundamental para cualquier artista de composición o VFX. Aunque requiere una serie de pasos de preparación, la flexibilidad y compatibilidad que ofrece para manejar la distorsión de lente entre diferentes paquetes de software lo convierten en una técnica invaluable. Con esta guía, tienes el conocimiento necesario para implementarla en tus propios proyectos y asegurar que tus integraciones de CG sean impecables.
Si quieres conocer otros artículos parecidos a Domina la Distorsión de Lente con STMap: Guía puedes visitar la categoría Juegos.
