Geometry Update

For renderable objects which correspond to Maya objects, an update implies some form of evaluation within Maya. This may be a DAG or DG evaluation depending on the situation.

A formal set of rules has been created for update and reflected in the API. Following these rules ensures a plug-in can take advantage of all features and benefits provided by the new rendering framework.

An update can be roughly broken down into the following steps:

  1. Performing Maya DG node or DAG object evaluation.
  2. Performing non-node and non-object update.
  3. Updating the appropriate data on render items.

Ideally each step caches sufficient information for the next step to occur. Steps should be independent of one another without any assumption as to when they may be called and notably what thread they may be executing in.

The data itself must conform to a geometric data specification which will be described in greater detail in later sec­tions. The data may either reside in CPU or GPU (video card) memory. For the most part, plug-ins which are associ­ated with DAG objects are responsible for providing CPU data, while plug-ins associated with rendering use GPU data. There are various use cases which will be explained in later sections. The main difference for plug-ins which previously dealt solely with CPU data is that data can now reside on the GPU. Thus, more care must be taken when dealing with certain operations (such as data read-back) which may now have a much higher performance penalty.

Another low level difference for those accustomed to “immediate mode” rendering is that such a concept is no longer exposed, and is now a discouraged method for drawing. All data is retained.