New Modeler Struggling with Booleans and Clean Topology

I’ve started modeling an old pay-phone for use as a game asset. I created the box and used the bevel modifier to round the edges and use that as the basis for the chrome panels on the front. I then used the Boolean modifier on difference mode to carve out the coin slot and the access key-hole. I noticed this gave the otherwise clean looking faces a triangulated artifacted appearance that is exaggerated when rendered. Maintaining clean topology without ngons has become a nightmare. I feel like I’m missing something.PAYPHONE.blend (640 KB)



Ooh, first post with a problem description and a .blend file to look at. Well done. Images or any external data won’t be included unless you pack them and there’s a compress option, which are shown in the tutorial linked in my signature. Might want to check those out for future posts.

Yes there are many things

  • Unapplied and also non-uniform object scale. That is why your bevels aren’t uniform. Object mode, ctrl+A -> scale to apply
  • Smooth shading can be used to smooth out curved surfaces, but it has to be controlled by cutting the shading on high angle edges so it doesn’t try to smooth those too. For example, a 90° angle between two flat surfaces would look bad when smooth shading tries to make both look rounded


Upper viewport: unapplied and non-uniform object scale. The object and geometry on the left is what tools and modifiers see, while you’re looking at the one on the right. http://pasteall.org/pic/show.php?id=72366
Lower viewport: smooth shading cut with auto smooth angle option. Could also mark edges as sharp to make it cut shading on chosen edges. Edit mode, select, ctrl+E -> mark as sharp, or from the tool shelf.


Top viewport, from left:

  • smooth shading enabled,
  • auto smooth enabled,
  • selected are non-planar faces, which I made planar by scaling to 0 along an axis (with active element pivot to keep them in place)
  • smooth shading can help hiding non-planar faces but I took a shortcut and marked high angle edges as sharp, and then used an addon to change the normals to clean the smooth shading https://blenderartists.org/forum/showthread.php?372785-Addon-Weighted-Normals-Calculator

Non-planar polygon https://blenderartists.org/forum/showthread.php?325921-Shading-Issue&p=2569443&viewfull=1#post2569443
Concave polygon https://blenderartists.org/forum/showthread.php?337775-Simple-modeling-question-Triangle-stays-when-moving-vertices&p=2653061&viewfull=1#post2653061

You might want to get rid of the n-gons because they can distort in UV unwrap, be it concave or convex

which you could do by

  • not using boolean operations for modeling because they only create structure to support the new forms, but doesn’t know the correct topology for the new forms
  • Getting rid of concave polygons by using mesh -> clean-up tools, triangulation tool to triangulate them, or triangulation modifier when exporting. Triangulate before you bake normals because that ensures the geometry doesn’t change because of different triangulation in another program, but otherwise it doesn’t matter as long the automatic triangulation doesn’t cause problems, which it could with concave polygons
  • clean up manually

Edit:
A bit of a disclaimer:
Polygons don’t always have to be absolutely flat (planar). It’s normal that models have non-planar polygons, especially ones with organic forms, and smooth shading hides them. It’s severely non-planar polygons that cause problems and have to fix those. The linked example needed more geometry to do that, but most often severely non-planar polygons happen because the structure flow doesn’t follow the forms, and it’s better to fix it so they do, rather than adding geometry.

First of all, I’d like to thank you for giving such a helpful response to new user’s first post.

I’ve done my best to take your advice on how to best rectify each issue and I’ve certainly made some progress. I didn’t even realize I had created non-planar faces! After flattening those and aligning them with the ends of the beveled edges and external parts (keypad, phone receiver), I tried removing n-gons manually. That didn’t work out to well. In fact, I ended up with extraneous geometry and overlapping faces. So I tried cleaning things up the lazy way. As in, the clean up tools provided with blender. Then I moved my attention to correcting the normals and shading. After trying to minimize the amount of n-gons,things started to look a little funky again. There were lots of shading artifacts. I selected all the edges I saw were close to ninety degrees and marked them as sharp. I then applied smooth shading. While this did something, it also grayed out the angle threshold variable. I then tried to use the weighted normal addon you linked to. This seemed to introduce more triangular artifacts, similar to before.

The shading in my last blend file appears more uniform around the bevels. I still feel there is a lot more work I have left to do before I can even consider UV unwrapping this mess. Part of me thinks I should start fresh while another part of me wants to hang in there so I can learn a thing or two.


PAYPHONE.blend (3.15 MB)

There’s so much going on and it’s rather technical so don’t get too frustrated whichever route you choose. It’s definitely not difficult because of you, it’s challenging for everyone.

Also my previous post had a lot of relevant information about the artifacts but wasn’t complete. I’ll continue in this one


A. All large faces are planar (flat) but when smooth shading is enabled, it reveals artifacts again. The front faces are n-gons but that’s not the problem
B. them being n-gons just make it apparent because they’re automatically triangulated as shown.
C. Close-up to show the triangulation in a corner

D. The problem is the shading which tries to hide the edges between all faces. The shading isn’t cut along any edges, and there’s an angle between the flat surface and the rounded one, which is beveled. Smooth shading tries to hide that angle and also affects the flat faces to do it, and because those faces are n-gons that get triangulated in whichever way, the artifacts are very apparent. The shading would behave the same with quads, but might not give as noticeable artifacts. It’s noticeable when comparing reflections though


If those beveled corners are supported with a perimeter loop, the angle between the large faces and the surrounding ones is the same, there’s no angle to smooth out, and the shading looks clean. The smoothing starts from a flat face like before, but is confined near the beveled edges where there are angle changes

Shading uses the vertex normals to get the angles. Using auto smooth to cut the shading on the edges, with or without marking edges as sharp, also changes the normals. The normals are split to make a cut in the shading.

But it’s also possible to change the normals to help with the shading without just cutting them, and without adding perimeter loops which could be tedious and adds geometry. Using the addon is one way to do that



A. reflection and normals before
B. and after. The addon changes the normals and stores them in custom split normals data, which overrides the auto smooth angle setting. It doesn’t put a perfect perpendicular normals against the flat faces, but close enough to hide the artifacts. If you make changes to the mesh, you need to run it again.

As a side note, here’s one tutorial that shows high poly -> low poly workflow for a game asset. The tutorial is for 3ds max so don’t try to follow the steps in Blender, but the process itself is still valid information.


If you check it and get to the point where it says something about smoothing groups, those are used to cut the shading like in Blender.

Also, if you comment on artwork, post critique or such and such, you should be able to get rid of the new user status with <10 posts and get your posts appear right away. The forum FAQ recommends doing so.

JA12’s respond is more than adequate, but if I may interject a little, Boolean and Clean topology don’t belong in the same sentence.
Use Boolean Modeling to flush out form, but remodel from scratch with the Booleaned Model as Base Reference.

I’m currently taken the time to learn a lot more about modeling in general since I’ve been self taught up to this point.

All of your responses have been very helpful. Thank you. I’ll mark this thread as completed.