Vertex animation via textures vs. Alembic

Houdini has an example project from GDC 2017 showing vertex animation driven by texture data. Pretty cool! But it’s also possible to do this type of animation using alembic in UE4. If you’re unfamiliar with alembic, it’s basically a big geometry cache. You can’t interact with it, but it’s good for cinematic fx.

My question is, what’s the performance difference here? According to the comments in the first video, vertex animation via textures is

“Orders of magnitude faster. Alembic (in it’s current implementation) regenerates the mesh every frame, with this technique the mesh is already generated and you’re just updating the positions”.

But I’m still skeptical because pushing polys is typically not the bottleneck, whereas texture memory is always in short supply. Plus, I’m not sure what optimizations, if any, UE4 is doing under the hood to optimize alebmic playback.

Thoughts?

Alembic regenerating the mesh every frame is only true for when you use the import setting that handles varying vertex counts, like if you had a fluid sim that starts from nothing. The setting that only works with a set vertex count (the skeletal mesh one) should be a lot faster. I don’t know how it compares with vertex animation though but you can just test both versions yourself.