You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is one potential improvement to the ray tracing method based on computing the subray loop starting in the outer ring. If all the subrays on the outer ring hit the same triangle primitive, then there is no need to compute the other subrays. We need some quantifications to understand the improvement ratio for different simulations (i.e., the proportion of the execution that corresponds to single triangle hits).
To compute the previous quantifications we could extend the data analytics mode to associate the subrays with the primitive. Thus, we need two updates:
2) Write the corresponding id in this new component so it can be later parsed by a python script to compute the quantifications.
See the end of the FullWaveformPulseRunnable::handleSubray method at https://github.com/3dgeo-heidelberg/helios/blob/dev/src/scanner/detector/FullWaveformPulseRunnable.cpp for an example on how the coordinates are inserted. The idea is to take some identifier from the primitive in the ray intersection (i.e., intersect->prim) so each single triangle can be identified by the pair (object_id, primitive_id). Examples of IDs could be finding the index of the particular primitive in the vector of primitives in the scene part, the index in the vector of primitives of the scene itself, the centroid of the primitive (assuming each primitive has a different centroid), or perhaps using the address of the memory pointer itself as an id.
The text was updated successfully, but these errors were encountered:
There is one potential improvement to the ray tracing method based on computing the subray loop starting in the outer ring. If all the subrays on the outer ring hit the same triangle primitive, then there is no need to compute the other subrays. We need some quantifications to understand the improvement ratio for different simulations (i.e., the proportion of the execution that corresponds to single triangle hits).
To compute the previous quantifications we could extend the data analytics mode to associate the subrays with the primitive. Thus, we need two updates:
1) Updating the output vector to contain one more element that will identify the triangle.
See
intensityCalc
at https://github.com/3dgeo-heidelberg/helios/blob/dev/src/dataanalytics/HDA_PulseRecorder.h (note that [12] already gives the ring, [13] must be added to account for the primitive index) for documentation andFullWaveformPulseRunnable::operator()
at https://github.com/3dgeo-heidelberg/helios/blob/dev/src/scanner/detector/FullWaveformPulseRunnable.cpp for initialization. For the intialization of each single vector seeBaseEnergyModel::computeReceivedPower
at https://github.com/3dgeo-heidelberg/helios/blob/dev/src/maths/model/BaseEnergyModel.cpp andImprovedEnergyModel::computeTargetArea
at https://github.com/3dgeo-heidelberg/helios/blob/dev/src/maths/model/ImprovedEnergyModel.cpp.2) Write the corresponding id in this new component so it can be later parsed by a python script to compute the quantifications.
See the end of the
FullWaveformPulseRunnable::handleSubray
method at https://github.com/3dgeo-heidelberg/helios/blob/dev/src/scanner/detector/FullWaveformPulseRunnable.cpp for an example on how the coordinates are inserted. The idea is to take some identifier from the primitive in the ray intersection (i.e.,intersect->prim
) so each single triangle can be identified by the pair (object_id, primitive_id). Examples of IDs could be finding the index of the particular primitive in the vector of primitives in the scene part, the index in the vector of primitives of the scene itself, the centroid of the primitive (assuming each primitive has a different centroid), or perhaps using the address of the memory pointer itself as an id.The text was updated successfully, but these errors were encountered: