Vertex animation textures (VAT)
Baking a simulation or animation into textures that a vertex shader plays back on a static mesh; how Houdini's Labs VAT and Blender's OpenVAT export them, how Unreal and Unity play them back, and what they are used for.
A vertex animation texture (VAT) stores an animation or simulation as pixels: each pixel holds where one vertex should be in one frame, and a vertex shader reads those pixels to move a static mesh. SideFX describes its VAT exporter as a tool for "complex real-time effects" such as soft-body deformation, rigid-body dynamics, remeshed fluids and particle sprites (Houdini documentation: Labs Vertex Animation Textures 3.0 render node).
Because the motion lives in textures and the shader, the engine treats the mesh as static. SideFX notes this gives a lighter CPU cost than skeletal animation (Houdini documentation: Labs Vertex Animation Textures 3.0 render node), and Pingle Studio's head of technical art puts it as "for the CPU, such geometry is perceived as completely static" (Pingle Studio blog: How to Breathe Life into Your Game Characters…).
#How the data is laid out
The exporter writes the mesh once and one or more textures beside it. In the simplest layout, every vertex gets a column and every frame a row; the pixel colour stores the vertex position as RGB. Blender's OpenVAT add-on writes positions (and optionally normals) into image pixels frame by frame and saves a JSON file with "min/max per channel for accurate reconstruction", because colour values must be remapped back into real positions (Blender Extensions: OpenVAT).
Houdini's Labs VAT 3.0 node offers four modes, each with different textures (Houdini documentation: Labs Vertex Animation Textures 3.0 render node):
| Mode | Use | Main textures |
|---|---|---|
| Soft-Body Deformation | Same topology every frame: cloth, flags, squash and stretch | Position, Rotation (normals and tangents) |
| Rigid-Body Dynamics | Packed pieces: destruction, falling debris | Position and rotation per piece |
| Dynamic Remeshing (Fluid) | Topology changes per frame: liquids | Position, Rotation, plus a Lookup Table |
| Particle Sprites | Points rendered as cards | Position and colour |
Precision matters. SideFX recommends HDR textures "if your performance budget can afford it", and offers to split positions across two 8-bit textures when an engine lacks 16- or 32-bit support (Houdini documentation: Labs Vertex Animation Textures 3.0 render node). OpenVAT exports "16-bit PNG or EXR (half-float)" (Blender Extensions: OpenVAT).
#What VATs are used for
- Crowds. Baking character animation clips into textures lets thousands of instanced meshes animate without skeletal-mesh cost. Mohamad Salame of SuperNatural Studios presents baking Houdini KineFX crowd animation into VATs played back with World Position Offset in Unreal (SideFX talks: Vertex Animation Textures for Crowds). Isaac Oster built an ambient zombie crowd in Unreal 5 from Mixamo animations converted with the AnimToTexture plugin and driven by Niagara (ArtStation: Zombie Horde with Vertex Animated Textures…).
- Destruction and shattering. Rigid-body mode exports packed pieces and their transforms (Houdini documentation: Labs Vertex Animation Textures 3.0 render node), so a building collapse simulated offline plays back as one static mesh.
- Liquids and morphing. For changing shapes, Pingle notes that a "skeletal rig wouldn't work at all" (Pingle Studio blog: How to Breathe Life into Your Game Characters…); fluid mode handles topology that changes every frame (Houdini documentation: Labs Vertex Animation Textures 3.0 render node).
- Cloth and flags. Soft-body mode keeps topology fixed and moves vertices, which suits flags, banners and curtains (Houdini documentation: Labs Vertex Animation Textures 3.0 render node). For simple looping wind on foliage, a procedural shader is usually enough; see wind and world position offset.
#How to make one
Houdini (Labs VAT 3.0) to Unreal or Unity
- Build or simulate the effect, for example an RBD fracture of a wall, and cache it.
- Add a Labs Vertex Animation Textures ROP. Set Mode (Rigid for the wall), Target Engine, the Start/End frames and the input geometry, and check the Input tab requirements for that mode (Houdini documentation: Labs Vertex Animation Textures 3.0 render node).
- Choose texture format: HDR if the budget allows; for rigid bodies, SideFX recommends Very High pivot accuracy (Houdini documentation: Labs Vertex Animation Textures 3.0 render node).
- Set the export path and asset name and press Render All. In Fluid mode, render the First Pass, then switch to Second Pass and render again (Houdini documentation: Labs Vertex Animation Textures 3.0 render node).
- Import the mesh and textures into the engine and use the matching shaders from the node's Real-Time Shaders section or its "Unreal Engine Plugin and Guides" button (Houdini documentation: Labs Vertex Animation Textures 3.0 render node; SideFX tutorials: Vertex Animation Textures in Unreal). SideFX's Soft-Body mode needs only "a single FBX file, a single material, and a single set of textures" (80 Level: A Complete Guide on SideFX's Vertex Animation…).
- Scrub the material's time or frame parameter and compare against the Houdini playback. Users on SideFX's tutorial page report fixing flicker in UE5 by enabling full-precision UVs on the static mesh and disabling Nanite for it (SideFX tutorials: Vertex Animation Textures in Unreal); treat this as community advice.
Blender (OpenVAT)
- Install OpenVAT (Blender 4.2 LTS or newer) from Preferences (Blender Extensions: OpenVAT).
- Select the animated mesh or collection and choose an encoding type, frame range, normal packing and output formats (Blender Extensions: OpenVAT).
- Click Encode Vertex Animation Texture; a preview object appears that you can scrub to check the result (Blender Extensions: OpenVAT).
- In Unity, install the OpenVAT package and use Tools > OpenVAT to set up materials and prefabs; set texture compression to RGB 16 or Automatic and match the max size to the exported dimensions (Blender Extensions: OpenVAT).
- In Unreal 5, import the textures with RGB16 compression; OpenVAT says it works best with forward rendering and that lit materials may show lighting issues without it (Blender Extensions: OpenVAT).
#Video tutorials
#Use in recent games
- Gord (published by Team17, 2023). Pingle Studio used VATs for combat effects of the game's elemental spirits, including a body icing over and shattering, a victim cracking into fragments, and the Mimic morphing from resources into a combat form; it adds "We also used VAT for many other effects, like splashes of blood, mucus, etc." (Pingle Studio blog: How to Breathe Life into Your Game Characters…)
- Crowd and VFX practice outside a named game. SuperNatural Studios presented its Houdini-to-Unreal crowd workflow at SideFX (SideFX talks: Vertex Animation Textures for Crowds), and SideFX's own tutorials show rigid-body and fluid VATs in Unreal (SideFX tutorials: Vertex Animation Textures in Unreal).
#In different tools
- Houdini: Labs Vertex Animation Textures ROP, four modes, Unreal and Unity shaders included (Houdini documentation: Labs Vertex Animation Textures 3.0 render node).
- Blender: OpenVAT add-on, GPL, with Unity, Unreal and Godot starter content (Blender Extensions: OpenVAT).
- Unreal Engine: the AnimToTexture plugin bakes skeletal animation to VATs inside the editor (ArtStation: Zombie Horde with Vertex Animated Textures…; YouTube: VAT - Unreal Engine 5. Vertex Animation…); SideFX supplies material functions for Houdini exports (SideFX tutorials: Vertex Animation Textures in Unreal).
- Unity: SideFX's shaders, or the OpenVAT package (Houdini documentation: Labs Vertex Animation Textures 3.0 render node; Blender Extensions: OpenVAT).
- Godot: OpenVAT provides starter content, with min/max values entered by hand (Blender Extensions: OpenVAT).
Related: shaders for artists · instancing · wind and world position offset · channel packing · bit depth and banding · the technical artist
#Further reading and watching
References
- · Labs Vertex Animation Textures 3.0 render node · Houdini documentation · docs · accessed 2026-10-22
- · How to Breathe Life into Your Game Characters Using Vertex Animation Technology · Pingle Studio blog, 2023 · article · accessed 2026-10-22
- · OpenVAT · Blender Extensions · tool · accessed 2026-10-22
- · Vertex Animation Textures for Crowds · SideFX talks · talk · accessed 2026-10-22
- · Zombie Horde with Vertex Animated Textures and HLSL in Niagara · ArtStation, 2025 · web · accessed 2026-10-22
- · Vertex Animation Textures in Unreal · SideFX tutorials, 2021 · course · accessed 2026-10-22
- · A Complete Guide on SideFX's Vertex Animation Textures Tool · 80 Level, 2021 · article · accessed 2026-10-22
- · VAT - Unreal Engine 5. Vertex Animation Texture Workflow with native AnimToTexture Plugin. Tutorial · YouTube · video · accessed 2026-10-22
Pages that link here
- Wind and world position offset Key term
- Water surfaces Topic
- The technical artist Topic
Last updated 2026-10-22