helios icon indicating copy to clipboard operation
helios copied to clipboard

Relate ScenePart and KDT as m to n

Open albertoesmp opened this issue 3 years ago • 1 comments

Improve ray casting Ray-primitive intersection checks could be improved. At the moment, HELIOS++ is using a KDTree for the entire scene. But sets of primitives defining the same object are known a priori because they belong to the same scene part. Performance could be improved by building one KDTree for each ScenePart (m to n relationship) and then using another KDTree to find which KDTrees have their bounding box intersected by the ray. Those must be checked, the others don't. Finally, intersections can be sorted by intersection time to decide which one/s must be take/n.

Prerequisite Before proceeding to this implementation, it is recommended (probably necessary) to improve HELIOS++ memory management.

albertoesmp avatar Jan 28 '22 10:01 albertoesmp

The same idea applies to time. Objects and subparts are only needed to be checked if they are also in the relevant temporal window. A simulation is a temporal sequence with a priori known behaviour. We can calculate based on the survey plan and scene, which sceneparts are likely to be hit or far away an not needed in memory. This applies in particular for the dynamic scenes.

bhoefle-3dgeo avatar Jan 28 '22 10:01 bhoefle-3dgeo