I have a couple quick questions about the distinction between the RTC_GEOMETRY_DEFORMABLE and RTC_GEOMETRY_DYNAMIC flags. I understand deformable geometries are mostly suited for skinned animations (with the vertex positions being moved around while the topology remaining constant).
However, I am a bit more unsure about the dynamic geometries.
Would they be suited for topology-varying geometries (whose index buffers may change) ?
And if the index buffer's size changes (for instance, the polygon count may vary over time for remeshed fluids), have I any other choice than to entirely wipe out the geometry and recreate it with the new number of primitives at each frame ?
Since the number of primitives is specified at construction time, I fear I don't.
All insight is welcome. Sorry if I missed something obvious in the tutorials.
For deformable geometries only the vertex buffer can change. For dynamic geometries also the index buffer can change. If you would like to change the number of vertices and indices you have to delete the geometry and create a new one.
you are right RTC_GEOMETRY_DYNAMIC is for topology-varying geometries. Recreating the geometry and the corresponding spatial acceleration structure (inside Embree) per frame should be quite fast, assuming you have "beefy" enough processor.
How many (regenerated) primitives per frame do you have?