Constructive Solid Geometry
Constructive Solid Geometry, or CSG, is a procedural modelling technique used in 3D computer graphics, in which complex shapes are formed through the boolean union, difference, or intersection of basic geometric shapes. This technique operates somewhat differently from polygonal modelling[?], in which objects are approximated using a series of polygons.
In modelling 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.
The red cube and the blue sphere are combined using the CSG union operator to create a single object, with the appearance of both primitives merged together.
Some software distinguishes the Union from a different operator, Merge, which does the union in such a way that the surfaces inside the merged region are not rendered. This would be desirable in cases where the objects are transparent, and the union should be treated as a single solid object. In particular, the POV-Ray graphics package implements this concept.
A boolean difference of two primitives is like 'subtracting' one or more objects from another object. This graphic shows a boolean difference in action:
Here, we see that a portion of the blue sphere has been sliced away from the red cube.
A boolean intersection of two primitives is the creation of a new object that takes the shape of the area where two or more primitives overlap. The next graphic shows this happening:
Here we can see that the volume where the blue sphere and red cube overlap has been turned into a new shape.
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 game engine uses this system.
Table of contents
1 CSG Operations
CSG Operations Boolean Union
A boolean union of two primitives is analogous to 'merging' them together, and treating them as a single object. This graphic depicts a boolean union:
Boolean Difference
Boolean Intersection
Applications of CSG