Search code examples
texturestexture-mappingcad

How to calculate the thickness of a mesh


I have models of some helmets that were laser scanned inside and out to create a full representation. I would like to create a texture for the mesh of each that represents the thickness of the helmet, somewhat like a 'heatmap' for thickness. I realize the calculation of thickness is not straightforward, but what I'm looking to calculate is the thickness of the metal of the helmet.

Can anyone please recommend a software/workflow which can be used to achieve this? Open source preferred, currently using Blender, Meshlab, and Slice 3D, but will use whatever is necessary.


Solution

  • MeshLab has the Shape Diameter Function that computes what is a good generic definition of the thickness of a mesh. For an example of its usage, follow this example inside MeshLab (each line one filter):

    • create a sphere (subdiv lev 2)
    • apply random displacement to vertexes (displacement 2%)
    • apply loop subdivision (3 iter) to get a smooth wavy sphere)
    • create another smaller smooth sphere (radius 0.9, subdiv 5)
    • invert this sphere
    • flatten the two layers into a single mesh (at this point you have a single mesh composed by two concentric spheres, one inside, perfectly round and one outside wavy)
    • apply Shape Diameter function (256 sample, 60 degree cone radius)
    • apply Colorize by vertex quality

    The result is encoded in quality and here you see it mapped into color; you can see how thicker regions correctly correspond to larger quality values.

    enter image description here