Digital Modeling: Fundamentals of a Digital Model
Before we go too far down the rabbit hole, I want to introduce some of the elements of digital models and the terms you’ll encounter throughout the book. If you have some experience already, you may be inclined to skip this section, but I recommend you at least skim through it just to make sure we’re on the same page. You can think of this chapter as a refresher course of 3D models 101.
A Model’s Anatomy
Digital models can be broken down into three types:
- Polygonal models are made up of a collection of points, edges, and polygons.
- NURBS surfaces consist of a network of curves with smooth surfaces between them.
- Subdivision surfaces are similar to polygonal models because they are made up of points, edges, and polygons but also share some of the benefits of NURBS surfaces, placing them into their own category.
In this section I explain some of the terminology used in the creation of all three types of digital models.
A point, also called a vertex (plural: vertices), is the lowest-level component that makes up a 3D model. Each point exists in 3D space with a specific X, Y, and Z coordinate. Because points alone do not have height, width, or depth, they cannot be rendered.
When two points are connected, a line is drawn. When three points are connected, they can become corners of surfaces on a model called a polygon. Without points, there would be no polygons. A triangle, for example, consists of three points and one polygon, as shown in Figure 4.1
[Figure 4.1] The three points (shown here in pink) define the shape of the triangle and its placement in 3D space.
Multiple polygons can share the same points when used on a contiguous (seamless) mesh. The tessellated sphere in Figure 4.2 shows individual points being used to define the multiple polygons that make up the object.
[Figure 4.2] Polygons that share a common edge also share points to define their shape.
Every point in an object stores information about its position and rotation, although you normally don’t access the rotational values of an individual point. Points also have the ability to store a variety of additional information using vertex maps. Simply put, a vertex map is information saved to a point.
The most common types of vertex maps include:
- Texture (UV)
Texture, or UV, maps store texture placement information and are the most common vertex map. UV mapping adds two extra coordinates to the points in your object; those on the U (horizontal) and V (vertical) axes, running horizontally and vertically through the flat plane of the texture map, on which you can paint your texture. UV coordinates are a 2D representation of 3D space. They set up a relationship between a two-dimensional image and the three-dimensional surface the image will be applied to.
Points can have as many UV maps assigned to them as you’d like. Figure 4.3 shows three UV maps that were created for the Spiderbait character that you can download from my site at www.pushingpoints.com/2011/07/spiderbait-rig.
[Figure 4.3] Three separate UV maps were assigned to the points that make up the character mesh on the right.
Weight maps store a single value, usually between -100 and 100 (although in some instances lower and higher values are possible). The most common use of a weight map is for defining a bone’s influence on a point when rigging (placing bones and controls to allow a model to be deformed for animation). Figure 4.4 shows positive weight values applied to the points that make up the character’s jaw. When the weight map is assigned to the jaw bone, the points will move when the bone moves. This allows for seamless organic meshes to deform in localized areas.
[Figure 4.4] Weight values assigned to points in the mesh (top) can be assigned to a specific bone (bottom) during the rigging process.
There are far more uses for weight maps than rigging. For example, you can use weights to mask a surface when texturing, influence dynamic simulations over an object, aid during the modeling process, and do much more.
Morph maps store offset information (alternate XYZ values) for a point’s position and are commonly used for creating morph targets for animation. Figure 4.5 shows several morphs applied to the base mesh. Each morph relies on multiple points being moved to new coordinates, and that information is saved to each vertex.
[Figure 4.5] Morph maps are commonly used to create facial poses for animation.
Similar to weight maps, morph maps have a variety of uses during the modeling and texturing processes.
Color maps hold values for Red, Green, Blue, and Alpha (RGBA) color information. I often use color maps on my character models to add color variation to the object’s surfaces, like adding blush to a character’s face. Figure 4.6 shows an example of using a color map to add a five o’clock shadow and some color to a character’s face.
[Figure 4.6] A color map was applied to the character’s face (right) to give the appearance of a five o’clock shadow.
A selection map, also referred to as a selection set, stores a single state of a point—either selected or unselected. Selection maps allow a modeler to recall a selected group of points quickly and can be extremely useful for defining which points will be affected by dynamic simulations.
An edge is a one-dimensional line that connects two points in a polygon. Another way to describe edges would be to say that they are the line segments that border a polygon. A triangle, for example, has three edges, three points, and one polygon, as shown in Figure 4.7
[Figure 4.7] The polygon in this image consists of three edges, shown here in pink.
Similar to points, multiple polygons can share the same edges when used on a contiguous mesh. The tessellated sphere in Figure 4.8 shows individual edges bordering the multiple polygons.
[Figure 4.8] Each polygon shares common edges in this mesh.
Edge weighting increases or decreases the sharpness of an edge between two subdivision surface (SubDs) polygons, allowing for harder or softer corners without additional geometry being added (Figure 4.9. The main issue with edge weights is that there is no universal, widely supported format that allows you to transfer edge weights from one 3D application to another. In today’s mixed software pipeline, this can be a showstopper. Most modelers I know avoid edge weighting and opt for additional geometry to accomplish the same end goal.
[Figure 4.9] Edge weighting has been increased to 100 percent to the four edges on the top of the SubD object on the left to produce harder edges.
Polygons, often shortened to polys and commonly referred to as faces, are geometric shapes consisting of a number of points that define the surface of a 3D object. A polygon is what you actually see in a render, and a typical 3D model will consist of hundreds or thousands of polygons (Figure 4.10.
[Figure 4.10] This head mesh consists of over 6000 polygons.
Although some 3D applications allow the creation of one- and two-point polygons, it’s more common that a polygon be made up of at least three points. Three-point polygons are commonly called triangles or tris. Polygons made up of four points are called quads, and a polygon that has more than four points is usually referred to as an n-gon. The term n-gon means a polygon with n sides, where n is the number of the polygon’s sides. For example, a polygon with six sides is a 6-gon. Examples of a triangle, a quad, and an n-gon are shown in Figure 4.11
[Figure 4.11] Polygons come in all shapes and sizes. The triangle (left) consists of three points, the quad (middle) is made up of four points, and the n-gon (right) is made up of 24 points.
A Non-Uniform Rational B-Splines (NURBS) surface is a smooth mesh defined by a series of connected splines, which are polynomial curves. This smooth surface is converted to polygons at render time, so NURBS surfaces can contain an arbitrary number of polygons. NURBS can be converted to polygons or subdivision surfaces and are useful for constructing many types of organic 3D forms because of the minimal nature of their curves. NURBS geometry is smooth by default and doesn’t need to be subdivided to “become” smooth like polygon geometry does.
Non-Uniform refers to the parameterization (defining the parameters) of the curve. Non-Uniform curves allow, among other things, the presence of multi-knots (a sequence of values that determines how much and where the control points influence the shape), which are needed to represent Bézier curves. Rational refers to the underlying mathematical representation. This property allows NURBS to represent exact conics (such as parabolic curves, circles, and ellipses) in addition to free-form curves.
B-splines are piecewise (a function that changes) polynomial curves (splines) that have a parametric representation. Simply put, a B-spline is based on four local functions or control points that lie outside the curve itself.
The best way to understand NURBS is to see them in action. Figure 4.12 shows multiple examples of the splines that define the NURBS surfaces.
[Figure 4.12] Each of these three NURBS surfaces are defined by a series of splines, shown to the left of each object.
NURBS are most commonly used in computer-aided design (CAD), manufacturing, and engineering. Although they were once used heavily for organic objects (see the forthcoming section “Model Classification: Hard Surface and Organic”) in the film and broadcast markets, subdivision surfaces have since replaced them in almost all instances in movies and television.
A spline is a curve in 3D space defined by at least two points. The most common spline used in digital modeling is the Bézier curve. Bézier curves are used to model smooth curves using far fewer points than a polygonal model would require. Control points make up the curve and can be used to dramatically manipulate the curve with little effort. Also, splines are resolution independent, unlike a polygonal mesh, which can appear faceted when you zoom in close enough to a curved surface.
Splines in 3D applications can be likened to vector curves in software such as Illustrator, Flash, and Photoshop. Splines are similar to NURBS in that they can create a “patch” of polygons that extends between multiple splines, forming a 3D skin around the shape (Figure 4.13, a feature which is extremely useful when modeling. Unlike NURBS, the splines must be converted to polygons before rendering.
[Figure 4.13] The four splines on the left were used to patch the polygonal mesh on the right.
Splines are also useful in many other modeling techniques, including but not limited to, extrusion (adding depth to a flat surface) and cloning (duplicating) along a spline and deforming a mesh based on the curves of a spline.
Subdivision surface (SubD) is a refinement algorithm that creates a smooth curved surface from a coarse polygonal mesh (also called a base mesh). This process takes the base mesh and creates a smooth surface using the original vertices as control points, also referred to as the control cage. Figure 4.14 shows the polygonal mesh (left), the control cage (middle), and the resulting SubD mesh (right).
[Figure 4.14] Subdivision surfaces allow you to work with a very light and simple polygonal mesh to create smooth organic shapes.
The number of polygons, or subdivisions, generated from SubDs can be adjusted to a varying level of density, and complex smooth objects can be created in a fast and predictable way from simple base meshes, as shown in the character model in Figure 4.15 This makes SubDs a popular option for most digital modelers.
[Figure 4.15] This character was created with a very simple polygonal mesh (left). But with SubDs applied (middle), a smooth, high-poly mesh was generated (right).