3dgeo-heidelberg / helios

http://uni-heidelberg.de/helios
Other
174 stars 41 forks source link

Mesh surfaces with small triangle sizes generate points behind surface #441

Open NixtonM opened 1 month ago

NixtonM commented 1 month ago

When simulating a scan of an object with a high-detail mesh (edge lengths below 1mm), we observe that the mesh becomes (semi-)transparent to the simulation. The number of points simulated on the actual surface becomes quite low. Instead, we obtain mixed-pixel-like behavior behind the surface (within the object's volume) and even see points on surfaces fully occluded by our object.

Has this behavior been observed previously, and if so, do you have a recommendation on triangle size vs. beam diameter (divergence and distance setting)?

han16nah commented 1 month ago

Dear @NixtonM

Can you provide a (subset of) the OBJ (+ MTL) of the mesh that you are using? It is not clear to me, what kind of detailed mesh you are working with and if this could be a bug of HELIOS++ or if it is expected due to the mesh surfaces being much smaller than the footprint of the simulated beam.

NixtonM commented 1 month ago

Hi,

thanks for the quick response. You can download the .stl file under https://polybox.ethz.ch/index.php/s/ugdoShsfLIojR64

Yes, the mesh faces are very small (sub 1mm edges).

bhoefle-3dgeo commented 1 month ago

It would also be helpful to see the other XMLs (you can also send them in direct emails to one of us if you do not want to share them widely; or put them here).

Generally some theory: both the chosen sampling settings of the footprint (Beam Sample Quality: https://github.com/3dgeo-heidelberg/helios/wiki/Fullwave) and the footprint size itself in relation to the target, determine how well the structure is "scanned" in the simulation. It means if you have a large footprint and low BSQ (i.e. only few sub-rays) and very tiny targets, you might not "hit" them or they produce a return which is too weak to create a point wrt the settings for echo detection.

If you want to test, you can set the BSQ super high if it will then avoid "transparency".

The other option would be to go to the detailed voxel model derived from your super high-res mesh (cf. https://doi.org/10.1016/j.rse.2021.112641). This will then treat your targets more like volume scatterers than single distinct (sub-footprint) targets.