Subdivision Modeling Theory and Principles

Subdivision Surfaces & Polygon Modeling

01. Section Introduction

In this section, we will talk about the theory of modeling using subdivision surfaces and polygon modeling. This section will talk about best practices that can be applied across all softwares and not just 3DS Max – though we will talk about some best practices for modeling in 3DS Max as well.

02. Cartesian Coordinates

Cartesian coordinates are a way of locating objects in 3d space. Virtually all 3d software uses this coordinate system. Coordinates are read out from the origin, or 0,0,0. When you create 3d models, vertices are positioned in space using X, Y, and Z. Lots of vertices = lots of points in RAM = slow performance!

When you are working, it is important to center your model around the world origin (0,0,0 which is the center of the workplane grid in 3DS Max). This is because many modifiers rely on the origin for symmetry, mirroring, and more.

03. Polygon Modeling

Polygon modeling is the act of creating an object using the basic elements of a 3D model. It is also the foundation that subdivision modeling is based on. As you learned in Section 01, these elements are vertices, edges and faces.

Faces can be made of any number of vertices or edges. Faces with three vertices & three edges are called triangles/tris. Faces with 4 vertices and 4 edges are called quads. Faces with any more than 4 edges or tris are called n-gons.

Polygon modeling is easy to edit – just grab a mesh element and move it around.

However, the more detailed and/or smooth the model is, the higher the polycount and the more difficult it is to manipulate all those elements effectively.

04. Subdivision Surfaces

To fix this issue, subdivision surfaces were created. Subdivision (SubD, Sub-D, etc.) modeling is an evolution of polygon modeling. While it uses all the same basic principles and tools, SubD generates a smoothed model with a very high polygon count based on subdividing a coarse polygon mesh. Note that in the example below, the smoothed lines tend to pull away from the coarser straight lines around them. This means that your coarse polygon mesh may be substantially larger than the final subdivision mesh.

Image credit: Polycount Wiki

Subdivision surfaces exist to make it easier to deal with very smooth, high poly meshes by editing a lower polygon model. In the example below, a low polygon “cage” creates the smoothed model to the right. Notice how the cage is slightly larger than the final result.

Image credit: Polycount Wiki

Creating Subdivided Models in 3DS Max

To create subdivision models in 3DS Max there are three modifier options; MeshSmooth, TurboSmooth, and OpenSubdiv.

We recommend that you use OpenSubdiv and never use MeshSmooth. TurboSmooth is OK to use but OpenSubdiv has more functionality and is a newer implementation of subdivision in 3DS Max. Given the choice, you should always choose OpenSubdiv.

05. Topology

Topology is used to describe the contours or shape of an object. In the 3D world, topology refers to the layout or “flow” of polygons as they describe a surface. Proper topology is important for three reasons:

  1. The model will be described correctly with consistent smoothing and highlights.
  2. Modeling shortcuts like selecting loops (connected chains of faces or edges) will work more efficiently and reliably.
  3. Subdivision surfaces will divide predictably, leaving no artifacts on the surface. For more details on these artifacts see this video by Guerilla CG.

There are some general rules to topology that you should follow:

  1. Create a rough model first for the basic shape, then add detail once the proportions are correct.
  2. Model with a minimum amount of geometry, for easier work. More geo means more control (but more work). Only add detail when you need it.
  3. Model in quads as often as possible. Triangles and polygons with more than four sides can cause pinching and other smoothing errors.
  4. Edge loops should be preserved whenever possible. You will learn when and where to break edge loops as you get more experienced.
  5. A pole is a vertex that doesn’t connect four edges. Avoid when possible, but they are required for most models.
  6. Isolate direction changes to allow you finer control over them.

We recommend looking through some of the subdivision examples and tutorials on Polycount’s Subdivision Surface Modeling page for more detail.

06. Modeling Methodologies

When starting your model there are two general approaches; detail-in and detail-out. There are no hard and fast rules for when you should use either method – some just work better for different geometry types.

a. Detail-In (Box/Primitive Modeling)

With Detail-In/Box Modeling, you start with a primitive, usually a box. By adding edge loops (rings of connected edges) you are adding extra detail that you can manipulate to create shapes.

b. Detail-Out (Surface Modeling)

This modeling methodology relies on creating strips of detail and joining them (or thickening, using a shell modifier) to create a model. When modeling with this method it is important to make sure your strips have the same number of faces to make sure only quads are generated when they are joined.

07. Creating Hard Edges

a. Retaining Loops

One thing you’ll notice pretty quickly is how subdivision will remove the hard edges in your model. For example, this cube was turned into a sphere by just adding an OpenSubdiv modifier on top of the stack.

To get these edges back you can add a retaining loop to the low poly cage. The closer two vertices are to each other, the greater their tension and the sharper the corner will be. See below:

This is why it’s important for you to minimize the amount of edges you have in a model and to be very aware of where they are being placed. Placing one edge unintentionally close to another edge can lead to unintended pinching. If you run into this, spreading your edges further apart can reduce pinching and smooth out your model. See this example:

Image credit: Polycount Wiki

One final thing to note is that adding edge loops will often require your topology to be built out of quads and edge loops. Having poor topology can mean your extra loops can go places you don’t want them to.

b. Crease Sets

The other method for creating hard edges is by using edge creasing. This technique is only available when using Opensubdiv. Edge creases work by adding a “weight” to each edge, causing it to appear sharper when the object is subdivided. Edges can be creased arbitrarily, so it is not as reliant on topology as adding a retaining loop.

To make an edge crease, you have to add two modifiers – a CreaseSet and an OpenSubdiv. In the CreaseSet modifier, select the edges you want to crease, and then select “Create Set”. This will create a new “EdgeSet” entry. You can adjust the creasing of this EdgeSet with the number to the right. Here, these edges have been set to a crease level of .5.
Once you go to the OpenSubdiv modifier, you will see the effect of the crease set.

One final thing to note with this technique is that edges can become unrealistically sharp if the Crease value is driven up too high. Additionally, in some cases this method is not as controllable as a well-made model using edge loops. Lastly, if you are importing a model from another program that has edge creasing, these creases will not be recognized in 3DS Max and they will need to be rebuilt.

08. Organizing & Collapsing the Modifier Stack

Properly setting up your modifier stack is important for the stability of your model and ease of editing. When working, your Edit Poly modifier should always be below the subdivision modifier. The only modifiers to use above subdivision are V-Ray modifiers, like VRayDisplacementMod.

This is because many modifiers will change the number of vertices in your mesh. If this happens, the vertices you have selected in Edit Poly will be incorrect and your model will display significant errors. In the example below, a change was made in the Edit Poly modifier above Turbosmooth. Then, the Turbosmooth amount was changed and the model broke. This is the incorrect way to organize your modifier stack.

You should also never collapse a subdivision modifier. A collapsed model is very difficult to edit afterwards. For example, the modifier stack below is good. TurboSmooth is above Editable Poly, so it is easy to edit the model. This example I have stretched the cube by moving one of the faces, to create an oblong smoothed pill shape.

However, the modifier stack below is bad. TurboSmooth has been collapsed. It is very difficult to adjust the model because there are now lots of extra polygons. This is why you should never collapse a Turbosmooth unless you absolutely have to (and most times you won’t).

09. Isolating Direction Changes

A direction change might be a hole, pocket, or extrusion coming out of a surface. It is important to isolate these with a ring of edges so that you can get proper smoothing. Below is an example where the extrusion was not isolated – you can see the major edges that make up the borders of the extrusion highlighted in red.

As you can see, the edges continue into the rest of the model. If we want to add retaining loops to tighten up the intersection between the surface and the extrusion, we will create unintentional pinching as seen here:

The only way to get around this is to isolate the direction change with an edge loop that goes around the base of the extrusion.

In this case, this isolation was created by selecting the faces where the extrusion was going to be and in setting them before creating it. Here you can see the process, and the face loop that it creates.

This creates the results below:

10. Smoothing Groups

Sometimes it’s not necessary to create a subdivided object – a polygon model will do. However, when using polygon objects, it is important to understand smoothing groups. Smoothing groups are used to tell the software which faces should represent a smooth surface. Sometimes it’s necessary to use a smoothing group to either add roundness where there is none, or to fix an error in the smoothing of the model’s faces.

From 3DS Max’s knowledge base entry:

“Smoothing groups are numbers assigned to the faces or patches of an object. Each face or patch can carry any number of smoothing groups up to the maximum of 32. If two faces or patches share an edge and share the same smoothing group, they will render as a smooth surface. If they don’t share the same smoothing group, the edge between them will render as a corner.”

Image Credit: Autodesk

 

To create or change a smooth group, select the faces you wish to change in the Edit Poly modifier. Under the Polygon: Smoothing Groups rollout, select a number to assign the polygon to that group. Press the number again to un-assign it from that group.

11. Creating Models

a. Break it Down

Before getting started with any model it really helps to break it down into its separate sub-objects so that you know exactly what it is that you have to model and what should be modeled separately vs. together.

When you do this, you should also identify any duplicate or similar pieces of geometry. These duplicates can be instanced instead of created from scratch, so any changes done to one will automatically affect the other. Items like the pillows on the seat and arms of this couch are similar and thus can be instanced.

Another thing to identify is subassemblies. These are collections of geometry that all relate to each other but not the rest of the model. So for instance, a foot that is made of three separate components can be identified as a subassembly. Identifying these early on is helpful for knowing the true scope of the model you have to make.

b. Guesstimating the Topology

Once you’ve blocked out the different sections of the model, you should start to draw over it (in your mind or on paper) to get a general layout of the topology you want to use. It should not be complex – in fact the simpler, the better. The idea is to just get an idea of the topology that you will need to construct. Notice that the couch’s foot is just a simple cone without the pointy end on top. The topology for that cone is just a truncated pyramid – then once it’s subdivided it becomes a cone. So the point here is to keep your geometry very simple and think in broad strokes.

c. Estimating Proportions

Next, you will need to figure out how big things are. While you may have some product information that tells you how big the product is overall you may not know the specific dimensions of individual model components.

The first thing to do is to create a bounding box to match the dimensions of the product. This bounding box creates a limit to your model based on the maximum listed proportions of the product. If your model exceeds the size of this box in any direction then you know you probably did something wrong. When making your box, right click on it -> Display Settings -> Box to make it easily see-through so you can see what you’re working on. It also helps to Freeze/Lock the box as well so it can’t be selected or edited.

After creating the bounding box, there are two major ways of determining the proportions of a product They can be used together to produce an even more accurate result, or separately if one of them doesn’t work well.

 i. The first method is to use perspective matching. We have a video tutorial which you can view here.

ii. The second is to use ratios between different points on the image as a comparison. So in the example below, we know that the leg height is 4” (roughly 10 cm). By drawing a line that matches the height of the leg in the image, we can create a ruler. By stacking these lines on top of each other, we know that the front of the couch is roughly 17-18 inches (42.5~45 cm) in height. We can compare different parts of the image together to get an idea of the proportions in the model.

 

d. Guesstimating the Topology

Once you’ve roughed out what you need to build in your head, the next thing to do is to block it in. Everything you create at this stage should be basically primitives or very simple shapes. The idea here is to get all the rough shapes and general proportions down before you move on to refining it. You can use either modeling technique to make this, but your first iteration should always be simple. Think of it like sketching an outline before you start the real drawing, using that outline as a guide.

Once you’ve roughed in the mesh, then you can start using these pre-existing forms to help you finalize it. The model to the right is the completed version of the base mesh, with OpenSubdiv applied.

Here you can see the final polygon control cage for the OpenSubdiv mesh above. Notice that the cages are still very simple. All of the smooth detail in the model above is coming from the subdivision modifier.

12. Example Topologies

Below are some sample ways of solving complex topological problems. These images are all available on the Polycount Wiki.