Threshroge opened this issue on Apr 24, 2020 ยท 12 posts
Warlock279 posted Sat, 25 April 2020 at 1:30 AM
Short answer ... the "topographical habits" in that video, aren't meant for "smoothing", once smoothing is applied to the surface/material, you'll get the wonky normals you're seeing. Turn off surface smoothing, and your normals issue will resolve.
Longer answer ... render engines can only handle triangles, so all geometry gets triangulated when you render [and when i say "render" i'm including, rendered to the viewport]. Once triangulated you're left with a set of 4 points, two that are shared on a common edge, and two that make up the third point of each triangle in a pair, and those 4 points are used to calculate the smoothing across that shared edge. However, you're also asking your software to calculate smoothing for the other two sides of each triangle, based on the pair of triangles shared by that edge. The more radically that smoothing calculation differs from the original, the more of a mess you're going to get.
In that image, the smoothing is fine across the edge when its just one pair of triangles, but when you add the next side of the cube, you've got a smoothing of 90 degrees [top to front], against a smoothing angle of 0 degrees [top to top], against a smoothing a smoothing angle again of 90 degrees [top to right side], and there just isn't a way to resolve it that looks good, so you end up with the wonky normals you're seeing. This all gets compounded when you look at that front right corner vertex, that gets its smoothing information from the top/front + top/top + top/right + front/right pairings, each of which is smoothed entirely different from the next.
Now as you add more polygons, it becomes less noticeable because you're not asking the software to smooth each pair across as many radically varying angles at the same time as you are with the simple geometry and you're also decreasing the visible size of each smoothing calculation. You'll see the corners still exhibit a bit of a oddness, but they're better than they were, and the straight edges themselves are fine, as is the flat surface making up the sides.
While more geometry IS a solution to your normal issue, the better solution is to just disable surface smoothing, and save rendering that many more polygons, because 12 triangles [in a cube] vs 9000+ probably isn't worth it for your use case.
[EDIT] The conversion of everything to triangles for rendering, is the reason "n-gons" are generally frowned upon because that leaves the decision of how each n-gon is broken up into triangles, entirely up to the computer. When you're working with dynamic geometry, it may not even break the n-gon the same way from one frame to the next, which can cause pretty serious shading issues in a rendered sequence.
Core i7 950@3.02GHz | 12GB Corsair Dominator Ram@1600mHz | 2GB Geforce GTX 660
Lightwave | Blender | Marmoset | GIMP | Krita