Constructive solid geometry

From Wikipedia, the free encyclopedia

The light cycles from the movie Tron were constructed using Constructive Solid Geometry
The light cycles from the movie Tron were constructed using Constructive Solid Geometry

Constructive solid geometry (CSG) is a technique used in solid modeling. CSG is often, but not always, a procedural modeling technique used in 3D computer graphics and CAD. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combine objects. Often CSG presents a model or surface that appears visually complex, but is actually little more than cleverly combined or decombined objects. (In some cases, constructive solid geometry is performed on polygonal meshes, and may or may not be procedural and/or parametric.)

The simplest solid objects used for the representation are called primitives. Typically they are the objects of simple shape: cuboids, cylinders, prisms, pyramids, spheres, cones. The set of allowable primitives is limited by each software package. Some software packages allow CSG on curved objects while other packages do not.

It is said that an object is constructed from primitives by means of allowable operations, which are typically Boolean operations on sets: union, intersection and difference.

Contents

[edit] Operations

In modeling packages, basic geometric objects such as the cube or 'box', sphere or ellipse, torus, and a number of other shapes that can be described using a mathematical formula, are commonly known as primitives. These objects can typically be described by a procedure which accepts some number of parameters; for example, a sphere may be described by the coordinates of its center point, along with a radius value. These primitives can be combined into compound objects using operations like these:

Operations in constructive solid geometry
Boolean union Boolean difference Boolean intersection
Demonstration of CSG Union Demonstration of CSG Difference Demonstration of CSG Intersection
The merger of two objects into one. The subtraction of one object from another. The portion common to both objects.


n :intersection  - :difference  u :union
n :intersection
- :difference
u :union

Iterating these elementary operations it is possible to build up objects with high complexity starting from simple ones.

[edit] Applications of CSG

Constructive solid geometry has a number of practical uses. It is used in cases where simple geometric objects are desired, or where mathematical accuracy is important. The Unreal engine uses this system, as do Hammer (the mapping engine for the Source engine), Quake and Lawmaker Editor (editor for Lawmaker Engine). (Hammer actually started out as Worldcraft, which was an editor for Quake.) BRL-CAD is a solid modeling CAD package that is fundamentally based on CSG modeling techniques. CSG is popular because a modeler can use a set of relatively simple objects to create very complicated geometry. When CSG is procedural or parametric, the user can revise their complex geometry by changing the position of objects or by changing the Boolean operation used to combine those objects.

[edit] Example Programs

[edit] External links