1
$\begingroup$

My model has a mesh with faces that are occluded by other sibling meshes:

enter image description here enter image description here

Right now I've been manually removing the occluded faces to reduce vert count and prevent skinning artifacts during animations.

Is there some sort of tool or plugin that can help me remove occluded faces more easier? I'm open to purchasing paid plugins, if necessary. I have to do this work for ~30 models.

Or if I instead had all of the meshes merged into a single mesh, would that enable me to use any other tools to remove occluded faces?

Thanks!

$\endgroup$
  • $\begingroup$ I'm looking for a tool like this as well. I am thinking about using raytraced Ambient Occlusion for determining what geometry is not visible. If there was a way to select faces based on the texture color - that'd be a solution already. You'd only need to select all the faces with black AO and delete them. $\endgroup$ – unfa Sep 15 '20 at 15:18
1
$\begingroup$

Maybe give the Mask Modifier a try.

  1. Add a vertex group to the body named "mask",
  2. Assign the verts you want to be hidden to this group
  3. Apply a Mask Modifier, & select the vertex group in the modifier settings.

( If the modifier hides the opposite of what you want to see, be sure to click the double arrow icon next to the vertex group field in the modifier )

enter image description here

Here is a video example : https://youtu.be/AYVNNT_IeSA?t=1246

Dunno your situation, but this is probably the least time consuming and least destructive option.

Hope this helps, and good luck!

$\endgroup$
  • $\begingroup$ Thanks for the tip on masking, but I think the trouble is somehow determining/selecting all the vertices that are occluded. $\endgroup$ – MisterTest May 5 '19 at 0:15
  • $\begingroup$ You're welcome. Dunno your situation...but it seems like a scripted solution is the answer. For example, if your source app was Makehuman, the vertex groups needed for masking might already be premade. Then, if your desintation app was Unity3D for example, you might be able to get a script made to automate importing. Between Blender's Python, and your destination app's available scripting languages, ideally, I think, that would be the way to go. $\endgroup$ – Emboo2 May 5 '19 at 2:34
1
$\begingroup$

Baking out Ambient Occlusion can help you spot areas that are completely occluded by other geometry.

  1. Unwrap your mesh
  2. bake AO
  3. Select faces that are completely black
  4. Delete them

The problem is that so far I haven't found a way to select faces that baked pure black AO automatically. I've done this manually for a test mesh and manged to reduce it from 4,026 to 2,704 triangles with near-zero visual difference.

It works best for meshes with a lot of self-intersecting geometry - for example a pile of rubble.

I hope someone could find a way to automate this process, as it could provide great performance benefits at very little cost (baking an AO map and analysing the texture).

I think it should be possible to create a script or add-on that'd do that, but I have no idea how to do it myself.

$\endgroup$
0
$\begingroup$

With the inner mesh selected and in Edit Mode, you can hold Control down while using left mouse button to draw around the area of the outer mesh, maybe not too close to the edges. Then you can delete what you've selected. But maybe this is what you mean by "deleting manually", and you want something more sophisticated?

$\endgroup$
  • $\begingroup$ Yes, I've been removing faces manually like this, so indeed I am looking for something more sophisticated. Thanks! $\endgroup$ – MisterTest May 3 '19 at 10:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.