Store vertex animation frames in shader

Godot Version

4.2.1

Question

I would like to store vertex animations (point-level animations, like blendshapes) as parameters in a shader. I would then interpolate between these animations to animate the mesh in the vertex shader.

I may have, for example, 15 “frames” of animation - each is an array of vertices which should effectively replace the current vertex position in the vertex shader. This would be very much like switching between different blendshapes.

I am wondering if anyone has any suggestions on how to store this data. I think I could use CUSTOM0-CUSTOM3, but that only would give me 4 frames of animation. Another idea would be encoding the animation into a texture. But I am curious if there are any other techniques for such a thing. Thank you!

Using vertex animation textures (VAT) is very much the go-to solution here as it’s a proven technique even used in AAA production games

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.