Defining Geometry in 3D
Modeling is the process of
describing an object or scene so that we can construct an image of it.
Points & polygons

Points  threedimensional locations (or coordinate
triples)

Vectors  have direction and magnitude; can also be
thought of as displacement

Polygons  sequences of ``correctly'' coplanar
points; or an initial point and a sequence of vectors

Geometry definition = position and topology
(connectivity)
A cube described in .obj file format
g
v 2.500000 2.500000 2.500000
v 2.500000 2.500000 2.500000
v 2.500000 2.500000 2.500000
v 2.500000 2.500000 2.500000
v 2.500000 2.500000 2.500000
v 2.500000 2.500000 2.500000
v 2.500000 2.500000 2.500000
v 2.500000 2.500000 2.500000
# 8 vertices
g cube
f 1 2 3 4
f 8 7 6 5
f 4 3 7 8
f 5 1 4 8
f 5 6 2 1
f 2 6 7 3
# 6 elements
Primitives
Primitives are the fundamental geometric entities within
a given data structure.

We have already touched on point, vector and polygon
primitives

Regular Polygon Primitives  square, triangle,
circle, ngon, etc.

Polygon strips or meshes

Meshes provide a more economical description than
multiple individual polygons
For example, 100 individual triangles, each
requiring 3 vertices, would require
100 x 3 or 300 vertex definitions to be stored in
the 3D database.
By contrast, triangle strips require n + 2 vertex
definitions for any n number or triangles
in the strip. Hence, a 100 triangle strip requires
only 102 unique vertex definitions.

Meshes also provide continuity across surfaces which
is important for shading calculations

3D primitives in a polygonal database
3D shapes are represented by polygonal meshes that
define or approximate geometric surfaces.

With curved surfaces, the accuracy of the
approximation is directly proportional to the number of polygons used
in the representation.

More polygons (when well used) yields a better
approximation.

But more polygons also exact greater computational
overhead, thereby degrading interactive performance, increasing render
times, etc.
Rendering  The process of
computing a two dimensional image using a combination of a
threedimensional database, scene characteristics, and viewing
transformations. Various algorithms can be employed for rendering,
depending on the needs of the application.
Tessellation  The
subdivision of an entity or surface into one or more nonoverlapping
primitives. Typically, renderers decompose surfaces into triangles as
part of the rendering process.
Sampling  The
process of selecting a representative but finite number of values along
a continuous function sufficient to render a reasonable approximation
of the function for the task at hand.
Level of Detail (LOD)  To
improve rendering efficiency when dynamically viewing a scene, more or
less detailed versions of a model may be swapped in and out of the
scene database depending on the importance (usually determined by image
size) of the object in the current view.
Polygons and rendering

Clockwise versus counterclockwise
Surface normal  a vector
that is perpendicular to a surface and ``outward'' facing

Surface normals are used to determine visibility and
in the calculation of shading values (among other things)

Polygon meshes and shared vertices

Polygons consisting of noncoplanar vertices can
cause problems when rendering (e.g. visible tearing of the surface,
etc.)

With quad meshes, for example, vertices within
polygons can be inadvertently transformed into noncoplaner positions
during modeling or animation transformations.

With triangle meshes, all polygons are triangles and
therefore all vertices within any given polygon will be coplanar.
With polygonal databases:

Explicit, lowlevel descriptions of geometry tend to
be employed

Object database files can become very large relative
to more economical, higher order descriptions.

Organic forms or freeform surfaces can be difficult
to model.
A
cylinder described in VRML
#VRML V2.0 utf8 CosmoWorlds V1.0
Group {
children Transform {
children Shape {
appearance Appearance {
material Material {
}
}
geometry Cylinder {
}
}
translation 0.0 0.0 0.0
}
}
Surface models

Surfaces can be constructed from mathematical
descriptions

Resolution independent  surfaces can be tesselated
at rendering with an appropriate level of approximation for current
display devices and/or viewing parameters

Tessellation can be adaptive to the local degree of
curvature of a surface.

Freeform surfaces can be built from curves

Construction history, while also used in polygonal
modeling, can be particularly useful with curve and surface modeling
techniques.

Curve direction and surface construction

Surface parameterization (u, v, w)

For placing texture maps, etc.

For locating trimming curves, etc.
Constructive solid geometry and boolean
operations

Algebraic combination (union, intersection, or
difference) of two geometric solids

Used in both polygonal and surface modelers

Volumes usually must be closed

Trimmed portions may continue to exist even though
invisible
Metaballs (blobby
surfaces)

Potential functions (usually radially symmetric
Gaussian functions) are used to define surfaces surrounding points

Potential function is proportional to distance
from a point

Potential = 1 at point location; potential falls
off to 0 at some distance from location

An implicit surface could be drawn arbitrarily
at any potential value (e.g. potential = .5)

For a single point, the potential function
results in a sphere

For clusters of points that are sufficiently
close for the radii of their potential functions to overlap, the
surfaces derived from uniform potential values may be ``blobby'' like
coalescing droplets of water, for example.
Isosurfaces

Boundary layers in a threedimensional data cloud

The 3D equivalent of contour lines
Binary Space Partitioning  for modeling/rendering
volumetric data


Data volume is repeatedly subdivided

Data extremes within each new subdivision or cell
are tested to see if they exceed a predetermined threshold

If threshold is exceeded, current cell is further
subdivided

If threshold is not exceeded, current cell is no
longer subdivided
Grouping and hierarchies

Allows selective control of the frame of reference
to which modeling operations and/or transformations are applied.
Back to course
outline
This file was last modified on January 22, 2002.