Adding UE4 Support for Rigid Transform
Had a chance to jump back on the Alembic pipeline this week. Our current project doesn’t require deformable motion so I switched to adding rigid motion support.
http://giant.gfycat.com/SpectacularArtisticDikkops.gif
Details:
- 10,2400 animated different meshes (even though they’re all cubes in the screenshot) rendered through 10 “draw calls”
- All done through constant buffers + object indexing into VertexBuffer blobs.
- 5.2ms / 9.2 ms in VR. [190 / 108 fps]
Right now, this is just UE4 infrastructure to support all of this. It took about a day to implement it in my DirectX harness but took the rest of the day to figure out the UE4 shader/custom rendering plumbing.
Also, limit of 1024 objects per group. This limit comes from constant buffer resource limits.
If I get a chance, I’ll try to glob multiple cbuffers per draw call or use tbuffers/generic buffers. From the looks of it, general buffers only incur a slight overhead over constant buffers on my 780ti but I think the variance could be high across different GPUs/drivers.
Next up, update my alembic parser code to extract rigid motion into a separate file