3dgeo-heidelberg / helios

http://uni-heidelberg.de/helios
Other
193 stars 44 forks source link

Relate ScenePart and KDT as m to n #161

Open albertoesmp opened 2 years ago

albertoesmp commented 2 years ago

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.

bhoefle-3dgeo commented 2 years ago

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.