Shading issues with cylinders

Hello everyone,

I’m having issues with shading after editing a cylinder. I’ve tried several approaches to reduce edge flow, but none have resolved the problem.

Any helpful tips would be greatly appreciated.

Thanks in advance!

Cheers Holy Poly


Shading Issue V2.blend (652.8 KB)

Hi, is there a reason why you didn’t do it this way?

Bc Reduction Of Edge Loops or am I wrong?
I’ve watched dozens of videos about Edge reduction, all of which preach the same thing. :exploding_head:

Reductions are most useful for very complex and dense models, like characters. On characters, you get parts of the body that need more edge loops than others, so reductions are really useful there.

Sadly, there is no perfect way to carve something into a low poly cylinder without getting shading problems, and reductions can even make things worse in some cases by adding useless polygons. The problem is the low-poly nature of the model. The shading depends on the smooth normals interpolating between the edges of the cylinder and any extra geometry will disrupt this, interrupting the curve of the cylinder with a flat patch of dense geometry.

For the fin that sticks out, I would actually solve that by separating the fin completely and leaving the cylinder as a pure cylinder.

For the second case, you will actually get a smoother shading like this:

This will look good enough with most materials and textures. The matcap is completely unforgiving and will reveal flaws that would rarely be noticeable. But a low poly cylinder like this will always have slight flaws in its shading. The only ways to fully fix the shading would be to either:

  • bake the normals of a higher resolution mesh on it
  • model it so it works with subdivision.

Thank you very much for the detailed explanation. :mechanical_arm:
I added the fins as separate meshes but felt it was a bit of a botched solution.
Are there any good books on SubD modeling that you’d recommend?

I don’t know about books, I would have rather thought to search for the info in tutorials. I might not be the right person to suggest ressources on this topic, because I learned it pretty long ago. But here is an introduction to it I just found that seems decent.

If there is no visual difference whether parts are separate or joined, there is usually no merit in joining them. You will just make your job more difficult.

Please also refer to the video on the link.
I think it will be helpful for beginners because the progress is slow. :slightly_smiling_face:

https://www.youtube.com/@Motionworks/videos

Thank you for the video links! I have one more basic question: What steps should be followed when exporting a SubD model for a game engine? The 3D model should strike a good balance between visual quality and hardware resource consumption.

First, don’t give the model more subdivision levels than necessary.

When you have a satisfying look, apply the subdivision, then dissolve edge loops that don’t contribute to the shape (like those that are on the wrong direction of a cylinder and add nothing) and edge loops that are excessive in very dense areas.

Finally, don’t worry too much about it. Modern game engines can take more geometry than you would expect. They have LOD systems and other optimizations that aren’t present in Blender. A big, important asset can get away with a few tens of thousands triangles, so do use the geometry if you need it. It will always be time to reduce later if it’s a problem.