I’m doing some cleanup and optimizations, including using dirty flags and time stamps.
For a given rtGeometry node:
Currently, if there are any changes to vertex positions or indicies, I flag the acceleration structure as dirty. I also call rtGeometryMarkDirty. So for example, in an editor, pulling verts does this.
However, any rtBuffer changes that don’t affect topology , For example, in an editor, changing vertex color, or assigning material id’s, I only call rtGeometryMarkDirty.
Since buffers already have mechanisms to signal when they need to be updated to gpu… is the rtGeometryMarkDirty needed? I’m guessing it may be a check my childrens dirty state implementation.
In general, when do we need to call rtGeometryMarkDirty? Also, are there any situations where we need to flags parent nodes of a childs change (other then parent acceleration structure) ? I