An introduction to 3D for those new to it.
3D software offers many options in how we represent, and thus create,
the objects that go into our scenes. In this part of the course
we examine basic object representations.
What Sorts of Objects
In most real scenes, the objects that we might want to
incorporate will be complex. Unfortunately most 3D modellers and
renderers don’t support basic object types like ‘tree’, ‘car’, ‘person’
or ‘house’. Such complex objects have to be created out of the
actual object types that the renderer supports. The usual basic
objects types are flat objects, like planes and polygons, and 3D
objects like spheres, cylinders, cones, etc. Of course, you can also
obtain libraries of already created objects. Some 3D programs come with
lots of these, others few. There are web sites where people place free
‘models’ that you can download. There are also companies that
specialise in creating ‘models’ that you can buy.
Polygons, for reasons that will become clearer later in this series,
are the mainstay of most 3D modellers and renderers. A polygon is
simply a shape made up of a number of straight lines, joined together
to define a closed shape. The points that define the end of each
line are called a vertex. Different programs allow variations on
the basic polygon. Some programs require that polygons be totally
flat, that all the vertices lie in a flat plane. Others allow
curved polygons. Some require all polygons to have either three
or four sides. Others allow you to construct polygons with
greater numbers of sides. Many of these latter ones will actually
subdivide the polygon into three or four sided ones before rendering,
though this is usually hidden from the user. One major advantage
of three sided polygons, triangles, is that they have to be flat.
Only four sided or higher polygons can have some vertices not in the
same plane as the others. A variation on the polygon that you
find in most 3D software is the infinite plane. As its name
implies this plane is a flat surface that stretches off into
infinity. Infinite planes are useful for things like water
levels, cloud layers, etc.
Polygons are defined by the x,y,z coordinates of their vertices.
It is not unusual to be required to define the vertices of a polygon in
a particular order, such as clockwise or anticlockwise when looking at
the front face of the polygon. Some software requires this to be
able to calculate the surface normal. Surface normals are
incredibly important in 3D work as they are used to work out how much
light is hitting a surface, and thus it’s colour. The surface
normal points up from the surface of the polygon. Some software
treats polygons as single sided, other software as double sided.
3D software that has single sided polygons will not display them if you
are looking at their back surface. With such software if you want
a bowl, for example, you have to define polygons forming both the
inside and outside surfaces. Software that uses double sided
polygons does not have this requirement, one layer of polygons can
represent both the inside, and outside surfaces, though this is not
natural, since the bowl walls would have no thickness.
Basic 3D objects, like spheres, cylinders, boxes and cones are also
incredibly useful. We can construct planets from spheres and tree
trunks from cylinders, for instance. Since these are the basic
forms used in the construction of most man-made, and many natural,
objects, they are indispensable. Many programs, when you use one
of these, create the basic object at a standard size. You can
then usually modify the object by stretching it into the form you
want. Other programs allow you to stretch out the shape when you
insert it into the scene. This stretching process allows you to
create oval footballs from a sphere, a rectangular building from a
square cube and a long spear from a squat cylinder. Most software
gives you the choice of doing this either by typing in numbers or by
clicking and dragging. This stage of modifying the shape of your
objects is usually much easy if you can easily switch between different
views of the object, like front, side and top, either through having
multiple views open at once or by switching views in the one window.
Boxes, spheres, cylinders, cones, polygons and text objects are the
basic construction components available in most 3D software, as shown
in this render done with Newtek’s Inspire 3D. In some programs all
these objects are constructed out of polygons, in others they are
primitive objects that are rendered directly. If you examine the edges
of the sphere and cone you can see that they are constructed out of
Creating Composite Objects
If all objects are treated as individual ones, you end up with a
heap of them to try to manage. Since most basic objects will
actually be used to construct more complex objects it is useful to be
able to group objects together that form parts of a whole. Thus
we might create an object ‘person’ with parts ‘head’, ‘body’, ‘arm1’,
‘arm2’, ‘leg1’ and ‘leg2’. Then ‘leg1’ consists of ‘upper’,
‘lower’ and ‘foot’. And so on. Building up complex objects
out of hierarchies of other parts makes life a lot easier. If you
want to move a whole object you can simply select the top level and
move it, knowing that all the component parts will move too.
Otherwise you would have to separately select every component and move
them, and hope you didn’t forget some small parts.
Object hierarchies are most flexible when you can give names to each
component part. Such hierarchies are also essential to making
character animation easier, as we will see later in the series.
Some programs allow you to readily display object hierarchies in a
diagram form that shows the relationships between parts, similar to the
folder hierarchy views that most operating systems allow you to see for
navigation purposes. Software that doesn’t do this is certainly
harder to use for some things.
This screen grab, from Ray Dream Studio, shows a cartoon bird and it’s
hierarchical construction. Unfortunately too few programs provide this
sort of display.
Another type of object related to the above is a polygon mesh. A
mesh is a set of polygons which are joined together to represent a
surface of some complexity. A good example of this is the polygon
mesh that Bryce 3D uses to represent the shape of the landscape.
The process of creating a polygon mesh usually does not require that
the user manually position each vertex of each polygon in t
mesh. Various other convenient methods are available. We’ll
examine these in later parts of the course.
This close-up of part of a bird model in Ray Dream Studio shows how this program tessellates spheres into polygonal meshes.
Why Are There Differences of Approach?
There are two choices the software developers have to make: what
primitive objects are to be supported; and what rendering method is to
be used? These two questions are interrelated, as we shall see in
Part3 of the course. The rendering method determines what actual
primitive objects the software works with to create images. How
we want the user interface to be will determine what primitive objects
are available to the user. For a number of reasons that we will
examine in the next part of the course, certain rendering techniques
can only actually support polygons, whilst others can actually handle
spheres, cylinders, etc. So a program that has to use polygons
for rendering will convert a sphere into a polygonal approximation, in
a process called tessellation, before actually rendering an
image. This creates more primitive objects to render but allows
the renderer to be highly optimised for the handling of polygons.
A program which can directly support spheres, say, does not have to do
this conversion and thus renders fewer objects in your scene but
requires specialised program code for each object type it supports.
These internal differences in approach are what make some 3D packages
good for some types of work and others more suitable for others.
Some will handle transparent objects superbly, other handle interior
lighting well, for example. Some will make dealing with certain
types of objects easy, whereas others make those objects hard but
others easy. It is for these reasons that many people working
with 3D software will use a number of packages for different parts of
the process. Whilst this is certainly not necessary, it can be a
useful approach. It’s the same as people using Painter for some
things and Photoshop for others, sometimes switching backwards and
forwards between the two.
The designers of 3D software have to make a complex set of choices
based on their priorities. These choices lead to the differences
in single or double sided polygons, whether tessellation is done and
what types of rendering options are available, to pick just
three. Some choices will speed up the execution of the program
whilst others will slow it down. These tradeoffs account for the
huge variety that we encounter in 3D programs.
Another use for polygon meshes is to represent irregular objects, like this landscape in Bryce 3D.
The result of rendering after texture
and colour is applied looks so much more detailed and more natural than
the polygon mesh it is based on. We’ll look at why this is so in
later parts of this course.