Open albertoesmp opened 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.
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.