This is something that’s been a hurdle for my studio for some time. UE4 doesn’t provide stats for mesh Volume, Surface area, or normal based-scale. The engine’s calculation of mass works well enough for volume but it’s not immediately obvious. Currently we’re trying to calculate shell weight from a mesh (hollow mesh w/ shell of x thickness times resource density) but it seems almost infeasible. If we were able to project a mesh inward (every vert by normal direction, can be visualized in material by displacing vertexnormalws times distancevar) and calculate the volume of the difference it would be easier, but that doesn’t seem to be a feature either. As volume and SA are very common geometry/trig concepts I’m confused why they’re not available. Dynamic weighting is integral to the game as things like momentum/force/fragility can be derived from it, and I don’t think these properties would be difficult to implement/expose.
For you information, calculating surface area is trivial, and consists of calculating areas of all triangles.
Volume is a bit more tricky. This paper covers it. In case with shell of a mesh, it is even more tricky. If your shell thickness is uniform thought the mesh, you could roughly estimate the volume from surface area and thickess.
You could also calculate the volume of the shell by subtracting inner volume from outer. This is also trivial, if both inner and outer skin are convex. You could also approximate volume via some sort of voxelization.
As you can see, there is hardly any one size fits all solution.
I guess precise calculations like that are not used very often, so I doubt that this will get implemented reasonably fast, but good luck with it!
Was there any development on this in the last years? I would like to calculate a volume as well in Unreal.
You mention calculating surface area as being trivial but fail to give an example. I would like to be able to do so in the material editor in UE4. Is this possible?