Issues with Smooth Shading and Contiguous Faces

Hey there BA!

I’ve recently started working on my first serious render in blender (I’ve been learning in my spare time while studying, with prior 3D tution in ProDesktop quite a while ago now).

While most of the other components have been coming together nicely, this magazine has been giving me serious issues. I’ve already had to redo it at least four times now, mostly due to silly beginner mistakes, but now that I’ve finally got the geometry as I want it, I’m running into issues when I enable smooth shading - and getting annoying artifacts:



I’ve already checked my edge and face normals, removed duplicate vertices and checked for non-manifold edges, and deleted some interior faces - I’ve tried merging contiguous faces, but I’m having issues filling what should be flat surfaces.

As tends to be suggested here, I’ve included a blend file of my model, and would be most appreciative if anyone could take a look at it and give me any tips on how to go about resolving this issue - I really don’t want to have to redo it all from scratch again :frowning:

Magazine.blend (566 KB)

The problem is that the topology is bad. Shading relies on good topology, and you have some huge n-gons and a ton of skinny triangles. Your mesh needs to be made of quads and maybe a few tris if absolutely necessary, and except for things like corner details, you should try to avoid long skinny faces as well.

Ideally in any ways, it’s better to not have ngons in the finished product, they’re good during the modelling process as they allow to easily select, bevel etc… entire part of a model without problems but can be problematic for lots of other things (the render will consider the ngons as disguisded bunch of triangle and can lead into rendering shading problems, loop cut with CTRL+R can’t work with ngons etc… )

It’s additionally good to try to keep your model all quads without any triangles too (due to some tools, like the subsurf modifier by example, working a lot better with quads and not that great with triangles)

Now without having to rework the whole topology (that would be really needed especially with the tons of triangles you have around , probably resulting of a boolean ? boolean are notorious to deliver nasty topology difficult to work with) you can try :
The simplest way :
Select the edges you want to be sharp , press CTRL+E and select Mark Sharp (or click Mesh -> Edge -> Mark Sharp)
Add an Edge Split modifier, enable in the modifier “Sharp Edges” and disable “Edge Angle”

The more complicated way :
You don’t want to use the edge split modifier by example or don’t want all the edges to be exactly sharp.
Then you will need support edges around the actual edges you want to be sharper, it will help with the smooth shading overall.
There by example on your model you have a support edge at that location that helps with the shading of the zone :
http://i.imgur.com/OBMcTd7.jpg

Adding support edges can be as simple as using CTRL+R for a loop cut (but with the ngons you’ll be unable to use that in most of the model) , select an edge and beveling it (CTRL+B) or using the knife ( K ) to cut

You can use too by example the Inset function (select faces and press I) :


See the added edges along the borders that helped to correct the overall shading of that part

There’s also overlapping geometry.


Thanks for the excellent replies guys. Like I said, I’m still finding my sealegs at this so to speak - I knew there had to be something wrong with the geometery.

I’ve learnt a lot these past few days, and am now very wary of booleans, moving from solid render packages, to surface-based ones is a bit more of a jump than I expected. Booleans were the order of the day in PTC, now they have the potential to seriously wreck a mesh.

I’ve gone through and manually merged as many of the n-gons I could find, and it seems to have cleared up a lot of my shading issues. But thanks to your detective work I should be able to fix as much of this mess as is realistically feasible, major kudos for your time Sanctuary, JA12 and Horseman.