graphics : arise
csg
Arise's support for Constructive Solid Geometry is comprehensive. All primitive
objects can participate in CSG operations, including compound and other CSG
objects themselves. As with compounds, textures can be inherited. The three
primitive CSG operations are supported: union, intersection, and difference.
These are more than binary operations - any number of objects can
take part. For intersection this means that the resulting object is contained
by all participating objects - for differences the result is the first object
minus all the subsequent objects.
This allows richer modelling without many additional CSG layers. For example,
the CSG image above was originally modelled using Rayshade's binary CSG
operations, requiring five difference and seven union operations
(by Eric Haines). In Arise it was modelled using only four differences and five
unions.
As Octrees are also compound objects, they can be used in CSG operations.
Arise's octree speed-up allows these operations at minimal additional cost. In
the case below, the octree alone takes about 82 seconds to render - with the CSG
operation, the image renders in 791 seconds - not bad when you consider the
additional intersection testing required by CSG classification techniques.
Triangles can also be used with CSG although as the rim of the teapot shows,
closed meshes work best.