4.3.8.1 Limitations
Procedural primitives cannot be used inside a RiMotionBegin
/RiMotionEnd
block. They can still be subject to transformation motion blur as well as contain motion blocks themselves. When a procedural primitive contains a motion block, it is the user's responsability to take it into account when providing the renderer with a bounding box for the procedural primitive.
Procedural primitives cannot be used inside a RiObjectBegin
/RiObjectEnd
block. They can however contain such a block and use objects declared before themselves (with the caveats mentionned below).
The following parts of the graphics state are not saved and restored for procedural primitives:
- Token declarations made with
RiDeclare
.
- Named coordinate systems created with
RiCoordinateSystem
.
- Retained geometry objects (
RiObjectBegin
/RiObjectEnd
).
This means that creating/declaring one of the above inside a procedural primitive may affect the graphics state for later procedural primitives. Likewise, a declaration made after the procedural primitive was declared (but before it was needed by the renderer) may affect it. This means it is necessary to declare the required elements before the procedural primitives that require them and not replace them until after the end of world block, when rendering is complete. It also wise to avoid using these declarations inside the procedural primitive itself. This behavior is subject to change in future releases depending on user feedback about it. Contact us at info@3delight.com if these features are important to you.
This document was generated
by Aghiles Kheffache on July, 31 2003
using texi2html
3Delight 1.0.0. Copyright 2000-2003 The 3Delight Team.
All Rights Reserved.