Vertex Animation Texturing, o VAT, es una técnica que optimiza animaciones complejas. Esta técnica procesa o bakea los datos de movimiento de una animación en una textura. Un shader | compute lee esta textura en tiempo real para desplazar los vértices de una malla estática. Así, recrea la animación con un coste computacional muy bajo. Es ideal para simular el aleteo de una tela, una explosión o el movimiento del agua en videojuegos y aplicaciones en tiempo real donde optimizar el rendimiento es crucial.


Cómo funciona el proceso de bakeado

El proceso comienza con una animación de vértices de alta complejidad, creada en un software 3D. Este sistema captura la posición de cada vértice en cada fotograma de la animación. Luego, codifica estos datos de posición, y a veces de rotación, en los canales de color de una textura 2D. Cada píxel de la textura almacena información de coordenadas para un vértice específico en un fotograma concreto. La textura resultante actúa como una tabla de búsqueda de animación.

El shader reconstruye la animación en tiempo real

En el motor en tiempo real, un objeto utiliza una malla estática con pocos polígonos. Un shader de vértices personalizado se encarga de procesar la animación. Este shader toma las coordenadas UV de la malla y el tiempo actual como entradas. Con estos datos, consulta la textura de animación para obtener la nueva posición de cada vértice. El shader desplaza los vértices de la malla estática según la información leída, recreando el movimiento complejo sin necesidad de esqueletos o blendshapes, lo que reduce drásticamente la carga en la CPU.

Aunque el resultado visual puede ser muy convincente, el modelo en sí sigue siendo tan estático como un maniquí de escaparate cuando no se ejecuta el shader, esperando su momento para cobrar vida a través de un píxel.