Representation and realistic rendering of natural phenomena with cyclic CSG graphs

A method for ray tracing recursive objects defined by parametric rewriting systems using constructive solid geometry (CSG) as the underlying method of object representation is introduced. Thus, the formal languages of our rewriting systems are subsets of the infinite set of CSG expressions. Instead of deriving such expressions to build up large CSG trees, we translate the systems into cyclic CSG graphs, which can be used directly as an object representation for ray tracing. For this purpose the CSG concept is extended by three new nodes. Selection nodes join all the rules for one grammar symbol, control flow by selecting proper rules, and are end-points of cyclic edges. Transformation nodes map the rays in affine space. Calculation nodes evaluate a finite set of arithmetic expressions to modify global parameters, which effect flow control and transformations. The CSG graphs introduced here are a very compact data structure, much like the describing data set. This property meets our intention to avoid both restrictions of the complexity of the scenes by computer memory and the approximation accuracy of objects.