I have received an alembic file from a 3D artist which is basically a thin large panel (think a large cube) that shatters procedurally. Imagine a large mirror shattering in a lot of pieces.
I believe the mesh is fractured in real time inside the alembic animation and at the most it has 122173 vertices (when fully shattered) and 105653 triangles in the first submesh and 5476 triangles in the second submesh.
I am able to load the file add the animation from the alembic stream player into a timeline.
The issue I have is that during the fragmentation the frames per second go down to 30-25 on a machine with an RTX 3080 and a modern 12 core AMD CPU.
The profiler shows that the majoority of the time is spent in PlayerLoop during AlembicStreamPlayer.LateUpdate() during the fps drops.
Is there anything I can do to mitigate this issue and improve performance?
Unfortunately, the alembic format is not a very performant format mostly because it constantly stream, and the geometry is constantly getting post processed: polygons converted to triangles, vertices split, etc.