24
$\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$
  • $\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 Nov 16 '14 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$ – pink vertex Nov 16 '14 at 21:23
  • $\begingroup$ See also the answer I came up with to another question blender.stackexchange.com/questions/57540/… $\endgroup$ – Andy Ray Jul 11 '16 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$ – Leon Cheung Jul 12 '16 at 2:40
15
$\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$
  • 2
    $\begingroup$ There aren't any doubles in the mesh, the steps result in the last image shown in the question. $\endgroup$ – iKlsR Nov 16 '14 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$ – Leon Cheung Nov 16 '14 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 Nov 16 '14 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$ – Leon Cheung Nov 18 '14 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$ – Leon Cheung Apr 26 '16 at 13:48
7
$\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$
2
$\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
    $\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$ – Leon Cheung Nov 16 '14 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$
0
$\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$
  • 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$ – Leon Cheung Nov 16 '14 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 Nov 16 '14 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 Nov 16 '14 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 Nov 16 '14 at 14:47
0
$\begingroup$

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

$\endgroup$
  • $\begingroup$ It would be useful for some cases, but definitely not here. $\endgroup$ – Leon Cheung May 30 '16 at 2:26
0
$\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$
  • $\begingroup$ It was mentioned in the initial question that he already tried using Select Non-Manifold. $\endgroup$ – CGEffex May 4 '17 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 May 4 '17 at 13:42

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.