u/AblazeInt

▲ 3.4k r/godot

Wall transformation VFX & behind-the-scenes for my game Psych Rift

This is a more practical use of the VAT (Vertex Animation Textures) technique from my previous showcase post. The effect is composed of two VAT meshes, one for the wall, and one for the bricks, because of my self-imposed 4096 vertex limit per VAT mesh. The brick wall has 437 individual bricks and 3496 verts, animated through bone chains, and the wall surface has 4016 verts. While doing the animations is pretty straightforward, the tricky part is finding ways to do it as a single mesh, so that it can be exported to VAT.

An effect like this would be tricky and/or expensive to do through traditional/procedural methods at runtime, but with VATs it's quite efficient. The downside to VATs is the VRAM usage for the .exr VAT textures which need to stay uncompressed (this effect uses 2.5MB VRAM), and the fact that LODs do not work with VATs (mesh topology needs to stay intact). But I think the effect is worth it, and I will be using it for many more cool effects in the game.

Compared to my previous video, I made improvements to the VAT shader, so that now I can have flat normals calculated dynamically, and no longer need to include normals in the VAT texture. This halves the VRAM usage and runs faster because no more normal texture samples are needed. Overall the effect including the VAT shader updates took 2 days to complete.

My implementation was originally inspired by this Godot VAT plugin.

YouTube Steam Discord

EDIT: Thank you so much for the awards!

u/AblazeInt — 6 days ago