Extract external shape of a complexe body


I try to find an algorithm or key word on paper that allow me to extract the external shape of my complexe object.

For example, I have a smartphone with all the inside parts and I want to get the external skin.

Can someone help me ?

Do you want this for a 3D model or the rendered image of a model?
If the former, I guess it falls under hidden surface removal, assuming that what you call the “interior” is fully enclosed by the “external skin”. In my really quite limited experience these algorithms work so so; it is not easy for a machine to decide if something is interior as soon as there are small holes involved (which could come from modeling errors or triangulation inaccuracy). If you do not need to automate this process you may get the fastest and possibly best results by using a DCC tool and just manually selecting, deleting everything you don’t want to keep.

For the latter I’d use silhouette as a keyword.

Indeed, I want to get the external skin as you said And I need an automatic process to do that.
I am looking for automatic algorithm.

The main problem for an automatic algorithm is that the model has to actually have an “external skin”.

If there exists a set of triangles which form a closed surface and all other triangles are bounded by it, then it’s a straightforward problem:

  1. Start with any point outside the object’s bounding box.
  2. Form a line segment between that point and any of the model’s vertices.
  3. Check whether that line segment intersects any of the model’s triangles.
    3a. If there is no intersection, then that vertex is part of the bounding surface.
    3b. If there are intersections, the triangle containing the intersection point closest to the external point (from step 1) is part of the bounding surface.
  4. The bounding surface is the set of triangles which are (transitively) connected to the vertex or triangle found in step 4.

But in all likelihood, the model won’t actually have an external skin. What a user would perceive as an external skin will probably be multiple disconnected meshes, probably with gaps between them. So you’ll need to decide when a gap matters and when it doesn’t.