Home
> Research
Support Group >
Visualization: 3D Modelling > Methods
There are many approaches to 3D modelling. For instance, if we want to build a
complex model, we can do so using only primitives (cubes, spheres, cylinders, cones, etc.) and Boolean operations
(unions, subtractions, intersections). Another approach is to start with a simple object or a curve, and create a
complex model by extruding, sweeping, revolving, or manipulating control points. Yet another approach is to create
complex solids by stitching several surfaces together. (Note that when using this method to produce a model suitable
for 3D printing, it ss very important to make sure there are no holes in the model.) Most commonly, we end up combining
these methods to create the models we want. Which methods we choose and the order in which we use them will depend on
many factors, such as the type of model we are creating, the usefulness of certain methods in particular modelling
situations, the cleanliness of the output generated by a method, and, perhaps, our personal tastes.
The following sections look at the use of several basic modelling techniques:
Boolean Operations on Primitives
The easiest approach to 3D modelling is to create a number of primitives
and perform simple operations on them. In the example, we created two cylinders of different widths and heights,
with one positioned within the other (see below left). In the picture below, one can see the results of performing
the "union," "difference," and "intersection" Boolean operations. The "difference" operation produced two different
outputs, as the order in which the objects are selected influences the results.

Another common use of primitives is the construction of objects by duplicating
primitives numerous times and positioning the duplicates appropriately. For instance, a series of cubes created in
this way is an easy way of modelling a staircase.
Modelling with Curves and
Surfaces
There are several different operations that we can use to build models from simple curves,
surface edges and surfaces:
Revolve, lathe, and lathing create 3D surfaces by revolving selected
curves around an axis in 3D space. A cross-section of such a swept solid is always circular and
perpendicular to the axis of rotation. A partial lathing might
also be possible with a rotation of less then 360 degrees.

Lofting creates a surface by fitting it on to curves that serve as
cross-sectional outlines for the object being created. Reversing the direction of those
curves can change the shape of the object (making it twisted if
necessary).

Extrude - Extrudes a surface
from selected curves. In a basic extrusion, a fixed cross-section or
curve is translated along a straight line perpendicular to the
curve's plane. The rotational orientation of the cross-section does not
change along the path.

Sweeping - A more generalized extrusion in which
a 3D model is created by moving a closed curve or cross section along
a sweep path defined by a curve in 3D space. At every point on the swept surface,
its cross-section is perpendicular to the sweep path.

Bevel - Takes a curve and
creates a number of bevels, or slope edges. This gives depth to a
flat object, or gives a rounder look to straight edges.
Planar - Creates a planar
surface from a closed planar curve.

Boundary - Creates a
surface whose edges are the selected curves.

Blend - Creates a surface by
blending two or more existing surfaces.

Fillet - Creates a curved
transition surface between two other surfaces.
Manipulating Components and Displacement Maps
We can also manipulate 3D objects on a component level. For example, we
can move vertices in 3D space to get a shape we need. In a case like this,
we can move vertices or groups of vertices around or
create and apply a displacement map over the surface of an object.
(The latter technique is especially useful when creating a terrain).
A displacement map is usually in grayscale and the displacement is
applied to the mesh according to the local grayscale values:
=> 
In case of problems, mistakes or suggestions, please contact: research.support@ualberta.ca
Revised: August 23, 2006
|