Imagen generada con IA
Cachés de simulación: hornea una vez y no lo repitas
Diego Cortés
Autor
La simulación queda perfecta, mueves un vértice y vuelve a empezar desde el frame uno. El problema casi nunca es el simulador: son los cachés de simulación. Aquí está dónde se guardan, cuánto ocupan y cómo se hornea una vez para no repetirlo nunca más.
Esto no enseña a simular telas ni fluidos, ni tiene que ver con el horneado de texturas: es el paso siguiente a que la simulación te guste. Si vienes de la tela o del agua con Mantaflow, aquí está qué hacer con el resultado.
Qué es hornear una simulación y qué se guarda exactamente
Hornear una simulación es guardar el resultado de un cálculo, no la receta que lo produjo. El manual de Blender lo dice sin rodeos: al reproducir, el resultado se cachea en memoria; al hornear, queda protegido y ya no puedes tocar los ajustes sin borrar el bake. Esa protección es lo que quieres antes de renderizar: el render no recalcula y la toma sale idéntica en cada intento.
La consecuencia cuesta aceptarla: de un caché no se vuelve a simular distinto. Se reproduce, se recorta, se mezcla. Si necesitas otra variante, simulas otra vez. Y hay una trampa de rango: Blender solo calcula fotogramas positivos dentro de Start y End; si la toma es más larga que el rango por defecto, el caché termina antes que la acción.
Memoria, disco y caché externa: tres sitios distintos
El caché en memoria se llena solo al reproducir y se borra en muchos cambios, pero no en todos: el manual pone el ejemplo de un campo de fuerza que deja el caché viejo. Cuando algo se ve raro, bórralo a mano.
El Disk Cache escribe fuera del .blend, en una carpeta blendcache_[nombre] junto al archivo. El .blend debe estar guardado antes, y si la ruta no admite escritura o es demasiado larga, Blender no escribe nada, sin aviso.
El externo es el más frágil: lees un caché de una ruta elegida y el nombre y el índice deben coincidir con los archivos. Con Library Overrides solo se admite Disk Cache. Y el Cache Step define cada cuántos fotogramas se guarda: un valor alto achica la carpeta, pero el resultado puede diferir.
Los archivos que vas a ver en la carpeta
Un caché con nombre se guarda como MyCache_xxxxxx_yy.bphys. Sin nombre se nombra a partir del objeto, con su número interno, y ahí está el peligro: varios cachés sin nombre en el mismo objeto chocan y puedes perder archivos. Con más de uno, pon nombre siempre desde Caches List.
Blender: el panel de caché de cada tipo de simulación
Todo cuelga del mismo sistema general de horneado, pero cada tipo tiene su letra chica.
Telas y partículas: el sistema unificado
Telas, partículas y soft body comparten caché y bake. Tres cosas se pagan caro: si mueves el objeto tras simular hay que limpiar el caché, porque Blender sigue con las posiciones viejas; el bake es por nivel de subdivisión, así que usa el mismo en preview y render y revisa el orden de modificadores, que cambia el número de caras entre viewport y render; y no puedes cambiar Start o End sin borrar el bake. El manual lo dice claro: editar el caché todavía no funciona. Un caso simple: Cushion Simulation.
Fluidos (Mantaflow): caché propio, Uni Cache y OpenVDB
Los fluidos usan su propio caché. Cache Directory trabaja con un subdirectorio por tipo de dato y el Offset se aplica solo al cargar. El modo cambia el flujo: Replay hornea mientras reproduces y exige Play Every Frame; Modular va por pasos; All lo hace de una vez con Bake All. Resumable escribe más en disco para poder reanudar: apágalo en resoluciones altas.
Para volúmenes eliges formato: Uni Cache, propio y comprimido, un archivo por objeto; u OpenVDB, un archivo por fotograma con todos los objetos, con compresión Zip, Blosc o ninguna y precisión Full, Half o Mini. Las mallas de líquido tienen formato aparte. Si tu carpeta pesa 40 GB, la decisión está aquí. Un caso: Photoreal Ocean Simulation.
Cuerpos rígidos: el caché vive en la escena
El caché de rigid body no está en el objeto: está en Scene, Rigid Body World, Cache, con Bake, Delete Bake, Calculate to Frame, Current Cache to Bake y Update All to Frame. Si no has guardado el .blend, el caché se crea en memoria y se puede perder. Y no confundas precisión con velocidad: Substeps Per Frame y Solver Iterations cambian el resultado, no el tiempo. Ejemplo: Rigid Body Product Simulation.
Maya: nCache, el horneado con menú propio
En Maya el caché tiene nombre propio. Un nCache guarda el punto simulado de Nucleus y de los fluidos y se conecta a los nodos nucleus, así que lo cacheado y lo no cacheado siguen interactuando. Sirve para no recalcular en playback ni render, y para dirigir o mezclar la simulación desde el Attribute Editor o el Trax Editor.
Dos formatos: mcx de 64 bits, que pasa de 2 GB con fluidos pesados; y mcc de 32 bits, tope de 2 GB. Dos advertencias: los nCache de nCloth guardan solo la posición XYZ de los vértices, no la translación, rotación ni escala del Transform; y dependen del Space Output, así que cambiarlo de Local a World desalinea el caché. El flujo de nCloth está en este post.
Los siete comandos del menú nCache que importan
Create New Cache permite un archivo por objeto, uno por fotograma o uno solo. Append to Cache añade tramos: si se solapa, se mezcla; si hay hueco, se interpola y el hueco no se guarda. Attach Cache exige la misma topología. Merge Caches une, Replace Caches reemplaza (no con más de un caché), Replace Cache Frame y Delete Cache Frame regraban o recortan fotogramas, y Delete Cache limpia.
Evaluar y guardar cada n fotogramas: el truco de la cámara lenta
Evaluate every # frame(s) decide cada cuánto se muestrea y Save every # evaluation(s), cuántas muestras se guardan. La receta para cámara lenta es evaluar cada 0,1 y guardar 1: el caché queda con datos reales y, al escalarlo por diez, se ve lento de verdad. Sin eso interpola en línea recta y se nota. En nHair, Dynamic State no es cacheable. Para verlo en español: Algas con nCloth.
Cinco reglas para no perder el trabajo
- Guarda el archivo antes de hornear. Sin .blend guardado no hay carpeta de caché, y lo que está en memoria se va con el cierre.
- Fija la malla antes de hornear. Un cambio de malla o de subdivisión no se recalcula sobre un bake protegido.
- Pon nombre al caché si hay más de uno en el mismo objeto, y unifica el espacio antes de crear el nCache.
- Revisa el rango. El caché solo se llena si empiezas a reproducir antes o en el fotograma de inicio.
- Limpia antes de entregar. Delete Bake o Delete Cache para no mandar 30 GB a la granja o al cliente.
Del caché al pipeline: Alembic cuando el simulador se queda atrás
Alembic en Blender es un caché de geometría, no de parámetros: congela el resultado para abrirlo en otra aplicación, en una granja o en una máquina más liviana. No soporta partículas ni armaduras, el pelo sale como curvas de ancho cero y las partículas como puntos animados. Y no tiene fotogramas: trabaja con tiempo y convierte con el frame rate de la escena, por eso 120 fps dentro de una escena de 30 fps no se estira. Decide Subdivisions Apply o Use Schema, Flatten Hierarchy y si usas ajustes de Render o de Viewport. Si el destino es otro software, revisa USD. Un caché que viaja como entregable: transferir una tela a un rig animado.
Diagnóstico: cinco síntomas y su causa
- La simulación se reinicia al hacer scrub: no está horneada, o Start y End no cubren la toma.
- El viewport y el render no coinciden: distinto nivel de subdivisión u orden de modificadores.
- La carpeta pesa una barbaridad: Cache Step en 1, precisión Full y sin compresión. Prueba OpenVDB con Blosc y Half; para el presupuesto del proyecto sirve ordenar el proyecto.
- Me borró el caché sin tocar nada: un cambio, como un campo de fuerza, invalidó el caché.
- El caché no carga en la otra máquina: nombre o índice que no coinciden, rutas relativas o, en Maya, un Space Output distinto.
Conclusión
Hornear no es un botón al final: es una decisión de producción. La simulación que nadie guardó se paga dos veces, en cálculo y en la granja. Si ordenas el caché desde el principio, el resto se vuelve aburrido, que es lo que quieres. En la plataforma tienes Blender y Maya para verlo en video, y los posts de telas, fluidos y océano siguen ahí.