Surface representations in computer graphics can be orders of magnitude smaller than polygonal or patch based surface representations which may be a desirable feature for memory constrained devices like game consoles. Constructive Solid Geometry (CSG) operations are a powerful method for defining surfaces of high genus (e.g. a sphere with a hole) from surfaces of low genus, such as plain cylinders and spheres. Defining parametric procedural surfaces of genus 0 (e.g., a sphere) and some surfaces of genus 1 (e.g., a torus) is usually straightforward since there are no holes in the surface domain. However, for surfaces of higher genus, it is much more difficult since domains of some parametric surfaces may have holes whose boundaries are, in some sense, only implicitly defined (e.g., as an intersection of surfaces). These boundaries are difficult to program manually.
CSG operations may provide methods for defining surfaces of high genus from surfaces of low genus, such as cylinders and spheres. Virtually any manufactured object may be modeled using CSG operations in combination with surfaces of revolution and generalized extrusions, both of which are easily programmed procedurally. Also, the addition of CSG operations to procedural surfaces dramatically increases the scope of objects that can be modeled procedurally.
Among other things, CSG operations may require computing and representing curves of intersection between the two or more surfaces being operated upon. These curves, in general, are defined only implicitly as the solution to an equation of the form f(x1, . . . , xn)=0. These equations are not easy to evaluate and typically require a sophisticated, slow, and computationally costly global zero finding solver. A more compact, exact and resolution independent representation of such curves on the other hand may be efficiently evaluated at runtime on a graphics processor. Such representation may be a highly desirable feature for memory constrained devices, like game consoles or for bandwidth constrained applications. Also, such representations may make it possible to represent high genus surfaces in an entirely procedural way without significant computational costs.