CSG (Constructive Solid Geometry)





MTOR allows you to specify RenderMan CSG trees within Maya in order to cause CSG operations to take place during rendering rather than as a modeling operation. Unlike Maya's booleans, RenderMan CSG operations function for all primitive types, leave the original geometry in Maya intact, and thereby allow a high level of animation and shading control as well as unique special effects such as motion blurred CSG operations. 

RenderMan CSG requires the specification of operators (intersect, difference, ...) to perform solid modeling operations on underlying solid primitives.  These operators must be combined in a tree structure with primitives as the leaves and operators as the branches. MTOR takes advantage of Maya's scene graph to form the basis of your RenderMan CSG tree and simply encloses the primitives it encounters during normal scene traversal within RenderMan SolidBegin/SolidEnd blocks.   Using MTOR's CSG menu you simply tag Maya DAG nodes as RenderMan CSG nodes. So the real trick is constructing a model than can live within these constraints. So, if your natural modeling hierarchy is related to your desired CSG tree, you're good to go.  A few other caveats and limitations:

  • MTOR provides no visualization of the results of your operations.  You have to perform a full render to visualize the results.

  • MTOR performs no error checking.  If you specify an illegal CSG tree in Maya's scene graph, you won't encounter the errors 'til you render.

  • Remember to assign the CSG Primitive tag to your CSG leaves.  Note that multiple Maya shapes can be used to compose a CSG primitive.

The CSG Menu

Primitive  Attaches the CSG primtive tag to the select object(s).  If your primitive is composed of several Maya shape nodes, you should attach the primitive tag to a group node above the component shapes.  Note, too, that all CSG primitives should be close solids.   If your primitives aren't closed, you may get unexpected results during rendering.

Difference  Attach to the parent node of CSG primitives to cause subtraction calculations, with the first primitive the the hierarchy having subsequent members subtracted from it.

Intersection  Attach to the parent node of CSG primitives to create geometry where the two objects coincide.

Union Attach to the parent node of CSG primitives to create one single surface out of multiple primitives, which then can be used in further operations. 

Detach  Deletes CSG tags from selected objects.

Select  Pick objects with CSG info.


Still curious?
Read the CSG Tutorial.


Pixar Animation Studios
(510) 752-3000 (voice)   (510) 752-3151 (fax)
Copyright © 1996- Pixar. All rights reserved.
RenderMan® is a registered trademark of Pixar.