How to get rid of many unseen faces?

Hi, I recently started to make blocky object, but without using Remesh modifier. I started from one cube, cloned it many times to make desired voxel shape, than i connected all of them with Ctrl+J, so it now looks like that:


Of course, i expected double vertices and faces, so I selected and removed them all with “Remove doubles” option. However overlapping faces only merged in one, but didn’t disappeared, and as you can see on the image below, they will never be seen on render, while may cause some problems with animations, simulations, and other modifiers like bevel in future:


Three of many useless faces are marked on red. I hope that you got what’s my problem.

I thought about just selecting with all faces seen from each 9 sides and delete all non selected, but this action doesn’t select all faces inside, and I may just miss some useful faces and delete them by accident.


Remesh modifier gives wierd oucomes, I tried to experiment with it, but it is colapsing some parts of my mesh.

So here is my question:
Is there any way to delete all those unneeded faces? I don’t care if this will need some vertex-voodo, I just want to get rid all of them while being confident, that no of them were missed, and needed faces are still intact.

HELP PLEASE :frowning:

Does Select > Interior Faces do the trick?


Yes, it does select all of those faces, however it’s also selecting about 75% of mesh’s surface that I need:


Brush outside using C deselect faces?

i would manually select all the faces you can see, then invert selection (Selection > invert) and delete faces.

Thanks for advices, but I know that i can select/deselect seen faces manualy with C brush or B box select, but in more complicated structures I may miss some faces, and accidently delete ones that I need.

I came to idea, that if there is no way to delete inner faces at once, than I still can in side, top, and front ortographic view with B box select unneeded faces in rows using B box select tool, they should be placed only in wall lines, so after cleaning needed facesmaybe it will work. Still its risky and time consuming, so I’ll be glad if you share with me some more ideas :slight_smile:

That’s what your eye are for

and accidently delete ones that I need.
Ho do you know which you need and which you don’t ? If you delete a face and two weeks later find you really needed it, just manually add it back

I came to idea, that if there is no way to delete inner faces at once, than I still can in side, top, and front ortographic view with B box select unneeded faces in rows using B box select tool, they should be placed only in wall lines, so after cleaning needed facesmaybe it will work. Still its risky and time consuming, so I’ll be glad if you share with me some more ideas
As has bee.n said previous;y use the paint select to select those that B will invariably miss

For the remesh modifier have you tried setting it to Sharp or Blocks

The “useless faces” i call are those faces inside my structure, that I want to delete. I know that I can simply select all, and C brush deselect, but its just a simple structure, and I will make in future much more complicated blocky meshes.

And yes, I tried “Remesh” modifier in various settings, but it only makes quite a big part of mesh disappear even on very high quality. Also Bevel and Subdivision Surface are getting fooled by faces inside my structure causing many artificials and wired shapes.

I know that it may be a silly problem, but I’m not 100% pro Blender user, and I just thought that there is one simple button that magically deletes unseen mesh parts. Thanks for help, and sorry that I took your time.

“select interior faces” should do the job.
However, it doesn’t in many cases.
I wonder, is this a bug?

1 Like

Probably it is a bug, I’ve made some tests, and I see that code for this option has to be very poor:



I’ve made cube, did some interior faces, and it appears, that “Interior faces” selects faces depending on their edge connection… or something… Anyways ill have to do it on my own than. Thanks for help guys :wink:

1 Like

the problem still seems to exist. Trying desperately to find a solution myself.

There are several solutions provided in this thread :slight_smile:

Honestly, I can’t find a solution either. Box/C select doesn’t work (thought it would for sure though), remesh doesn’t work, nothing I’ve tried works. The only method I know of is just to manually select every single inside face, which is far from ideal.

You could try the cube method with a boolean intersect…
It basically works like this…
Make sure the cube object is Joined…
add a new cube and display it as wire ( just so you can see inside…)
Scale it so that it surrounds the cube object with the intersections…

Select the outer cube and shift select the inner mesh…
( I use Booltool for this)
Select Booltool Brush Boolean Intersect…in the modifier select solver options > self intersect

and if you are lucky it will work for you ( it doesn’t always work on a dense mesh)
Subdividing the outer cube can help…

The best thing is to make sure they are all really interior faces or turn them into interior faces. Just joining aligned separate objects isnt enough for that.
Do the combine in the following order and you should be able to select all relevant faces easily.

  • Select all cubes
  • Join them into one object
  • Select all Faces
  • Trigger a merge by distance to merge all colocated vertices
  • Deselect all Faces
  • Then Select All By Trait → Select interior faces
  • Delete them.

That’s what I tried. Doesn’t work.

Hmm, works fine here. Can you share a blendfile with an object that fails?

Well, I did a bit of testing and I have bad news. The box/circle select method works perfectly in 2.79 but for some reason does not in later versions. For some reason, in the new versions, the box/circle select will select faces you can’t see. I’m not sure why.

This one doesn’t work.
untitled.blend (498.6 KB)

1 Like

Thanks for the file. I made some more tests with it, but yeah its indeed not that stable.

So I made this geometry nodes setup, that should solve it. Could you try this out ?
Simply add it as modifier and apply it.

Default Treshold 0.2