# Approximation of smooth surfaces with polygonal meshes

I'm just getting started with Blender. It seems to be a nice tool, but like most 3D programs, it has a strange limitation: it seems to only render polygon meshes.

A polygon mesh is of course a set of perfectly flat surfaces connected by perfectly straight edges. This is great for moddling man-made objects such as cubes, or for genuinely angular things such as crystals. But how the heck do you draw curved things?

Of course, you can approximate any curve with a sufficient number of straight lines. But it's always a pretty crude approximation. You would need billions of polygons to produce a genuinely smooth-looking surface. Even if it were somehow possible to model that, the memory and render time requirements would be crazy.

To get around this, most 3D programs have a button somewhere to blur out the surface normals, creating the illusion of actual curves. But it's just that — an illusion. The outline of the object still has raggid, sharp edges. The shadow of the object still has sharp edges. If two objects intersect, you can see all the straight lines where they meet, no matter how smooth the surface looks.

And then I sat and watched Spring. And you know what? I don't recall seeing a single straight edge anywhere in the entire thing! So how's it done? Where is the secret button that lets you have curved surfaces?

• @vklidu When I saw the NURBS button, I thought "aha! This is how you make curved surfaces!" But no, hidden away in a corner is a "how many polygons do you want with that?" property. It's as if Blender's rendering engine can only draw polygons for some reason... Feb 2 '20 at 9:16

This is a very good question.
It all comes down to fooling your brain.

1. “Approximating a curve with polygons is pretty crude”
Well, human eyes have considerably limited resolution.
Screen resolution also contributes - it isn't infinite.

You don't need infinite polygons, just enough to fool the human eye.
It's easier to do, than most people think.

2. “You would need billions of polygons for a smooth-looking surface”
Smooth-looking is the key word.

Surface needs far less geometry to look smooth, than a silhouette.
Most of your focus is on surfaces, not silhouettes.

3. “I don't recall seeing a straight edge anywhere”
Don't recall is the key phrase.

You don't focus on details, but on the moving imagery.
When you pause the animation, chances are you'll find some jagged edges.

Try pausing older movies like Toy story 1, Shrek or Ice age. This is what Pixar understood first - you don't need it perfect. Just non-distracting.

Fig. 02 - Surface of a low-poly object looks perfectly smooth, while it's silhouette is jagged

Smooth surfaces are accomplished by combining subdivision surfaces with normal interpolation. In Blender this is done by adding a Subdivision Surface modifier to the mesh, which uses the Catmull-Clark algorithm, and enabling smooth shading for the object. The polygonal model that you're creating only has to approximate the shape, the subdivision surface modifier creates the high resolution mesh non-destructively for the render.

The following examples demonstrate the effect of subdivisions and flat/smooth shading with the Suzanne model. The base model isn't changed only the parameter of the modifier. On the left side is the model with flat shading, on the right with smooth shading.

No Subdivisions

One Subdivision

Two Subdivisions

There's no need to guess how exactly the models where done for the Spring short film, the files for the characters and scenes are available on Blender Cloud (subscription required) or you can download the demo scene (free) that was used for the Blender 2.80 splash screen.

Mesh in edit mode

Lightly subdivided mesh in the viewport

• So I downloaded the example scene... and now I have way, way more questions! (Starting with "why does this crush my high-end Core i7 into the floor?") Feb 5 '20 at 19:32
• @MathematicalOrchid Hello. Feel free to ask more questions, it might be helpful to others. Plus, answering this one was real fun :). Feb 7 '20 at 21:21
• @ᴊᴀᴄʜʏᴍᴍɪᴄʜᴀʟ I doubt anybody else is wondering "why can't I find the dog mesh?" ;) Feb 9 '20 at 9:48

You already described it :-) it's partly done by additional geometry (destructive or nondestructive way). Partly smoothing by normals. For more see Blender Manual