33
$\begingroup$

I built something Minecraft style model by cubes. Now I met a problem: when I'm trying to remove all interior faces, it appears that some exterior faces are influenced inevitably. I wonder if there is some better way to do it better.

enter image description here

P.S.: There are three things I've tried:

  • Non-manifold checking (Ctrl Shift Alt M)
  • Select Interior Faces (Select -> Interior Faces)
  • 3D Print Toolbox (Addon)

I didn't work it out so far, which leaves me no choice but manually deselect those faces I didn't want to remove, which takes quite a bit time for other cases.

enter image description here

There are answers like this Merge touching faces on model. But I don't think it works exactly in my case.


EDIT: Is there any faster way than enabling Limited Selection to Visible then manually deselect them from different views? (it will not work effectively in complex cases that require similar need)

$\endgroup$
4
  • $\begingroup$ Select Interior Faces (Select -> Interior Faces) - does exactly this, if it doesn't work. something very strange is happening. Listed steps in my answer. $\endgroup$
    – ideasman42
    Commented Nov 16, 2014 at 14:18
  • 2
    $\begingroup$ For this special case you might use a script. I.e. something like this to select double faces if you just move cubes around. $\endgroup$ Commented Nov 16, 2014 at 21:23
  • $\begingroup$ See also the answer I came up with to another question blender.stackexchange.com/questions/57540/… $\endgroup$
    – Andy Ray
    Commented Jul 11, 2016 at 17:52
  • $\begingroup$ @AndyRay Yes, I also thought about that. That's a workaround for complex things. I'll try your script thx. $\endgroup$ Commented Jul 12, 2016 at 2:40

10 Answers 10

27
$\begingroup$

Update, this is working in Blender 2.81 (see: T68401)


Use the following steps:

  • Enter Editmode
  • Set the Selection type to Faces
  • Select all
  • Vertices -> Merge -> By Distance
  • Deselect all
  • Select -> Select All by Trait -> Interior Faces
  • Delete

You say Select -> Select All by Trait -> Interior Faces didn't work; I expect it's because you didn't remove doubles first.

Tip

After this, try Limited Dissolve, it gets rid of redundant geometry which can be useful in examples like this (if you don't have UV's or per-face materials set differently on each face).

$\endgroup$
8
  • 2
    $\begingroup$ There aren't any doubles in the mesh, the steps result in the last image shown in the question. $\endgroup$
    – iKlsR
    Commented Nov 16, 2014 at 14:54
  • 2
    $\begingroup$ I think I know why. In Blender, if we select all edges that form any face (in this case, four edges form a quad face), then the face has to be selected too (when Face Select mode is enabled). This is a law of Blender I bet. :( Maybe a solution would be some operator like "Remove Interior Faces", so that we can skip the selection step, and that can well solve this problem, because interior faces are always unwanted in 99.99% cases. Correct me if I'm wrong. $\endgroup$ Commented Nov 16, 2014 at 16:46
  • $\begingroup$ That makes sense, but I'm not sure that's the problem either. Doing it in face mode ought to avoid that, but it doesn't.. According to the tool tip for the remove interior ("Select faces where all edges have more than two face users" I assume "face users" == connected faces? if so, could it be changed to something like "Select faces where all edges have more than two connected faces"?), those exterior faces should not be selected. Yet they are.. Is this a bug in the operator? (selecting faces whos edges only have two "face users"?) $\endgroup$
    – gandalf3
    Commented Nov 16, 2014 at 18:21
  • $\begingroup$ Yes. What is also strange is in the 3D Printing Toolbox addon, this screenshot was taken when checking non-manifolds. We can see the faces with all four edges selected still keep unselected, which means it is still possible to break the law? $\endgroup$ Commented Nov 18, 2014 at 16:34
  • $\begingroup$ @Campbell, I've never expected this question drawing over 10,000 views until I just got a golden "Famous Question" badge... It indicates that ppl are very eager to find a better way to build minecraft style things in BL, while building by cubes is the most preferable one. After reviewing it again, I still think the Select Interior Face option is not ideal here unless it allows to select interior faces ONLY. However, It seems the current algorithm is based on non-manifold detection, which is not ideal for handling faces (Please correct me if I'm wrong). $\endgroup$ Commented Apr 26, 2016 at 13:48
9
$\begingroup$

Here are the steps that worked for me, at least in the simple case.

WARNING This does not technically remove "interior faces," it removes duplicate faces that exist in the same place, on meshes with poor initial topology.

Here's my mesh in solid view, to show the overall topology: Starting Mesh

Inside we can see all the cube faces are made up of triangles that point in different directions, but still there's lots of interior faces I don't want:

internal topology

1. Merge duplicate vertices

You may not have to do this, but the way my mesh is constructed of cubes, I have to.

  • Go into edit mode edit mode > Vertices vertices
  • Press Ctrl+v d to delete duplicate vertices. Or Use this menu: garbage menu 1

If this worked, you will see something like garbage UI at the top of the screen.

2. Clean up faces with "Limited Dissolve"

  • Go into Face mode face mode
  • Select all faces by pressing a
  • Run limited disolve (there is no keyboard shortcut for this). It's found under Mesh > Clean Up > Limited Dissolve

Blender bad ui

The new topology uses quads now instead of triangles:

new topology

3. Remove interior faces

Only after completing the above steps did "select interior faces" work for me.

  • Deselect all faces by pressing a
  • Select interior faces (there is no keyboard shortcut for this) with Select > Select All by Trait > Interior Faces

interior faces

Now your overlapping faces are selected, and you can delete them!

delete

See also this answer to my other question about how to do this automatically in a script, which improves on this answer using raytracing.

$\endgroup$
4
$\begingroup$

This is actually quite simple, switch to Face select, select everything and then using MMB and making sure Limit Selection to Visible is ticked (this prevents any face not being from being selected), orbit around the model and deselect all outer faces, then use X to delete the inner faces.

$\endgroup$
1
  • 2
    $\begingroup$ Thanks iKIsR. Surely I know that. Just... it requires more steps through, I mean, we have to change view(s) for times and deselect faces again and again. Luckily this is a very simple case. What if there are somewhere that can be hard to see from view? What I'm looking for is a quicker way. Something like clicking Merge Selected Objects button while holding Ctrl in Asset Sketcher. $\endgroup$ Commented Nov 16, 2014 at 4:26
2
$\begingroup$

It may not be the super fast method, but in case of huge objects it could be useful.

  1. Delete interior faces (Select--> Interior Faces).
  2. Select the whole object and choose (Mesh--> Clean up--> Fill Holes) enter image description here
  3. Select the whole mesh, unwrap it using 'Smart UV Project' and click the 'sync button'. Now select the parts which are the ngons. enter image description here
  4. Press Shift+H to see only selected parts in 3d view. Fill the gaps extruding edges with snap tool enabled. Use Shift+ R to fasten the process. enter image description here
$\endgroup$
1
$\begingroup$

Limit selection to visible.
Use circle or border select to select all the faces you can see.
Rotate the mesh and do the circle or border select again.
Repeat until all exterior faces are selected.
Invert selection.
Delete faces.

$\endgroup$
5
  • 2
    $\begingroup$ Similar to iKlsR's answer. Sounds like a boring work, doesn't it? :) Choosing a view, deselect things, then switching to another view, then deselect again... I just feel that there must be some operator or trick can do this more straight forward. $\endgroup$ Commented Nov 16, 2014 at 4:28
  • $\begingroup$ Indeed very similar. And it really is quite fast. Took me two minutes to do it on your example file. ;) $\endgroup$
    – user7952
    Commented Nov 16, 2014 at 4:34
  • $\begingroup$ @SixthOfFour To be fair that example file is a pretty simple case, two quick border selections are enough (I can do it in less than ten seconds). However I agree with a Leon Cheung, this seems like something which should be automatable. But coming up with a definition of an "internal face" really seems non-trivial (to me anyway).. $\endgroup$
    – gandalf3
    Commented Nov 16, 2014 at 7:10
  • $\begingroup$ @gandalf3 Yes, it's a simple one. And I'm going to blame my bad memory for taking two minutes. No matter how I try, I can't remember keyboard commands, so I use the mouse for practically everything. :( And I agree that it should be automatable. I just meant to say, that it isn't very difficult. $\endgroup$
    – user7952
    Commented Nov 16, 2014 at 14:47
  • $\begingroup$ You're wrong @LeonCheung, this is actually the opposite of what iKlsR proposed. This is much faster because you just select all outer surfaces, no need to deselect anything. Then selecting all the internal surfaces is a single command. $\endgroup$
    – Daniel
    Commented Jun 14, 2020 at 13:56
1
$\begingroup$

I think things have improved now or there is a better way.

Select > Select Non Manifold (Ctrl+Shift+Alt+m), then Select > Select Inverse

$\endgroup$
2
  • $\begingroup$ It was mentioned in the initial question that he already tried using Select Non-Manifold. $\endgroup$
    – CGEffex
    Commented May 4, 2017 at 12:58
  • $\begingroup$ This won't work because cubes are overlapping but don't have any shared geometry. It will work once the cubes are cut at the intersections; the tricky part is how to cut them precisely. $\endgroup$
    – Mr Zak
    Commented May 4, 2017 at 13:42
0
$\begingroup$

This solution worked fine for my problem to remove interior faces

  1. Switch to Vertex select.
  2. Select all.
  3. Vertex> Merge Vertices> By Distance (Remove doubles).
  4. Select> Select all by Trait> Non Manifold (only check Vertices).
  5. Switch to Face select.
  6. Delete faces.
$\endgroup$
0
$\begingroup$

this is the simplest solution I could find:

you could go into edit mode, select all exterior faces by going around and box selecting, which makes it impossible to choose faces you cannot see. then you would go into "select" in the top row, and clicking "invert", which would invert your selection, so that you only have the non-visible faces selected. then you just press x to delete them, and you're done.

$\endgroup$
0
$\begingroup$

If your mesh has duplicate inner faces. You can fix this issue easily just follow these steps:

  1. Go to edit mode
  2. Press L and select all faces
  3. Press the right button on the mouse and go to SEPARATE -> SELECTION = SOLVED!
  4. Move the selection to the side and erase the inner faces that were separated

All the Best - Wolves Studio

$\endgroup$
-1
$\begingroup$

A faster way to create minecraft models is to use the Remesh modifier with 'blocks' type.

$\endgroup$
1
  • $\begingroup$ It would be useful for some cases, but definitely not here. $\endgroup$ Commented May 30, 2016 at 2:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .