Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog RSS

3D Modeling, Part I

Polygonal surfaces (that is: polyhedra) have become standard in 3D graphics. Graphics cards, however, only handle triangles, not arbitrary n-sided polygons. (Classic OpenGL allows to draw polygons with more than three sides; the graphics card or the graphics driver will automatically slice them into triangles.)

Typically, each vertex of a polyhedron is part of several adjacent polygons. It should only be stored once and only be processed once by the vertex shader. Thus, a polygonal object is typically stored on the graphics card as two lists:

Similar data structures can be found in 3D software such as Cinema 4D and in file formats such as .x and .obj.

Note that hard edges require duplicating the vertices along them, as every vertex contains only one normal vector in the typical GPU implementation.

Polygonal surfaces can approximate any reasonable surface arbitrarily well and support sophisticated editing operations. (Have a look at this great tutorial.) Even though standard 3D software such as Autodesk Maya or Maxon Cinema 4D contains a plethora of polygon editing operations, many artists rely on specialized solutions such as Autodesk Mudbox, DAZ Hexagon, Luxology Modo, Nervecenter Silo, Pixologic ZBrush, Shapeshop. Demos.

However, for easier storage and processing, it is often much more convenient to deal with smooth mathematical surfaces. The easiest way for doing so is to specify a surface S by an explicit function: S = {(x,y,z) in R3 : (x,y,z) = f(u,v) for some (u,v) in [0,1]x[0,1]}, which is merely a deformed version of the unit square, depending on the function f. A infinitely extended landscape may be generated through {(x,y,z) in R3 : z = h(x,y) for all (x,y) in R2}. Demo with XNA.

Many interesting surfaces such as the sphere do not allow such a simple representation, but may be created as a union of pieces of that kind. All such surfaces are called two-dimensional submanifolds of R3 as long as they fulfill certain regularity conditions.

In most situations, such so-to-speak “mathematical” surfaces are stored via their defining formula but are processed (e.g., deformed) and rendered through a polygonal approximation. Most 3D software contains a set parametric primitives [German: parametrische Grundfiguren]: ready-made surfaces (sphere, cone, ...) of that sort, which can be controlled by parameters such as radius or height. Prominent examples for functions that typically operate on the polygonal approximation are Boolean intersection and Boolean difference. Demo with Cinema 4D.