(A fancier version of a quick diagram I made a long time ago)

This tutorial is a more detailed remake of this old tutorial. This version should explain more.

Smoothing: one of the challenges of every beginner modeler, especially someone who wants to keep models low-poly. A lot of models don't get this quite right, which is one of the fastest things that can make a model scream "I'm computer generated" in screenshots and ruin realism.

This example uses a simple right angle between two faces of a cube as its example; that's all you really need to understand the basics.

When each object is shaded by a 3D engine, the shaded shape of an object is approximated by something called normals (represented in these diagrams by arrows), which basically tell the computer what direction light is supposed to reflect off of each vertex and surface. Included in each diagram is a graph showing basically what the computer's interpretation of the normals looks like, which is how the computer will try to shade the object.

Let's start with the two polygons with different smoothing groups applied. As you can see, with only two quadrilaterals, we have the impression of two entirely distinct surfaces on an object. As we can see, with two different smoothing groups, the rendering engine computes the normals for one side of the cube separately from the other side. As long as the smoothing groups are preserved, or the faces are broken apart into separate elements, there is no ambiguity.

However, the bigger the object in question is, the more obvious it will be that there is a harsh joint between these two faces. Real objects, made of real imperfect materials, have edges that roll over, because most cuts in real materials are similarly not perfect and are rounded off a little. If a real object had edges this sharply defined, it could probably actually cut something as if it were the edge of a razor.


Let's say, instead, that we want to smooth out that crease so that it looks like two surfaces with a smooth joint between them. The intuitive solution might be to try and make both polygons share one smoothing group instead of two. Let's try that.

Oops. As you can see, if you use one smoothing group for two faces, the rendering engine will try and compute the normals continuously across the entire surface that shares a smoothing group. When you have three samples for normals, its optimal "smoothest" solution for interpolating all three of those samples is simply to draw a curve that includes all three normal vectors.

This is obviously more like a sphere with blocky edges than a cube at this point, at least in terms of shading. An error of this type produces a "pillowy" impression and makes models look unreal.


Okay, let's try chamfering the edge so that we get a crisp, defined edge.

Oops again, that didn't work either. As you can see, giving it more points improved its definition a little, but there is still nothing telling it that the flat surfaces are supposed to be flat. Instead, we end up with the situation in the previous diagram, only sharpened a little.

No matter how many times you re-chamfer these edges, it might improve, but it will never quite be truly flat - and the polygon count will rapidly creep upward if you try to keep chamfering away.


Let's try something different. The situation in diagram 2 isn't bad for the boundary of the crease, but obviously we want our flat surfaces to look properly flat. So let's instead split the edge separating the two sides of the crease (Editable Poly -> Edges -> Edit Edges -> Split), select both of the split edges, chamfer each of those, and weld the vertices at the edges back together.

Aha! Now we're in business. The flat surfaces are properly flat! The normals on both sides of the flat parts are identical, meaning that the rendering engine will treat them as flat surfaces. In the middle, we get that nice lovely rounded shading as the rendering engine interpolates the normals. The flat surfaces are distinct, but still blend together.


Now, you can make the crease sharper or broader by making the chamfer narrower or wider on each side. You can even give the impression of a crease that is looser on one side than on the other by chamfering both sides differently. If you're still concerned about the boundary at the edge of the model looking squared-off, you can chamfer the middle edge to make it a little rounder.


This is a slightly polygon-intensive way to replace smoothing groups -- we doubled our polygon count just smoothing these two surfaces -- so I wouldn't recommend it on models of very small items (tiny badges, etc) where a razor-sharp crease between differently smoothed surfaces won't be noticed. However, on body line seams and especially on more important creases in the model, this is a good technique to keep in mind.
 
No comments yet