TAPESTRY: The Art of Representation and Abstraction

3D Data Types

What's it all about?

When a program is written the programmers must consider several issues. One of these is the information which can be used to describe the phenomenon under consideration. Another is the anticipated use of the software (i.e., what kinds of changes users will want to make to the information). Finally, they must consider what they know and understand about transforming the data. There are some fairly simply defined problems for which there are no known solutions, regardless of the computer's speed.

Data Models

When creating a scientific theory or a computer program we try to simplify complex phenomena to the simplest set of features which can be readily and usefully manipulated. This almost always gives us a set of simple "objects" (primitives), each of which can take on a variety of "qualities" (attributes). These objects exist in some "relationship" to each other, and through those relationships we seek solutions or answers to the questions which perplex us.

First, you need to understand that most 3D modeling programs simply describe the geometry of the object or environment we are modeling. We use them to explore questions of appearance, not questions of tactility, acoustics, cost, or thermal behavior. We can sometimes infer, or guess at these other qualities, but the fundamental function of the program is to manipulate the geometry. In some cases we are even permitted to create digital geometries which have no analog in the physical world.

3D data is generally described in terms of one of the following data types:

An early, flexible, but less-often used modelling approach simply creates lines in space. No hidden-line removal is possible, so models are perpetually "see-through".

Most 3D modeling is done to create models for rendering, and the history of rendering technology has (so far) focused on the development of "photorealistic" imagery--synthetic pictures which provide enough of the cues of the real world to fool our eyes. Such images require the existence of surfaces in the model, which boundary representaion (or b-rep) data provides.

Another term for B-rep. Rhino uses "poly-surface" to refer to collections of geometry that collectively form an object's boundary (like the six sides of a cube). These may be simple polygons (like rectangles) or more complex surfaces, like NURBS.

Beyond simply providing a basis for photorealistic rendering, the model may need to provide answers to important questions, like, "Does the crankshaft hit the engine block when it rotates?" or "What if we cut away the corner of the building to reveal an entry way?", or "Can we fabricate this part using a numerically controlled milling machine?" These involve processing or manipulating the existing data as if it were a true solid. It turns out that solid modeling depends on knowing the "inside" of the object from the rest of the universe.

You can't tell the difference between a solid model and a b-rep model by looking at them, but you can usually tell the difference by what you can do to the solid model that you can't do to the b-rep model.

Model vs. Image: Higher and Lower order data

It is important to recognize that the type of 3D model which the program utilizes or in which you've done your work may not tell you everything about the kinds of images you can make with it, and the kinds of image you see may not tell you everything about the type of data.

If I know that a certain shape is a 4-inch "solid cube" centered at (0,0,0) I know that there are vertices at (2,2,2), (2,-2,2), (-2,2,2), (-2,-2,2) and so on. I also know that there is an edge to the cube which runs between (2,2,2) and (2,-2,2). If I ignore all the other properties of a solid (such as the existence and opacity of its faces), I could simply draw all the edges, which would give me the same image as that produced from a wire-frame represenation of the same cube.

Do we have both a wire-frame and a solid model? No. We have a solid model which can be rendered as if it were wire frame because the wireframe data is implied or subsumed within the solid data.

Because of this relationship, we say that the solid data is "of a higher order" than the wire-frame data.

Last updated: April, 2014

Valid HTML 4.01 Transitional Valid CSS! [report bug]