Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Pre-scene: the renderable camera and exposure parameters have been determined and the Maya time is set to the shutter open time, but no objects have been processed yet. Callbacks of type ExportCallbackType_BeforeScene are run at this stage.
  • Shape processing: the shapes in the Maya scenes are processed and supported objects are exported. The custom export commands are called for objects which define them. This process happens in two phases, as described in the introduction. The render options and lighting environment settings are exported before any shapes are processed.
  • Motion processing: if motion blur is on, the exporter will advance the Maya time for each sub-step and export object motion. In the last sub-step (when the shutter closes) it also exports the vertex positions and normals for all meshes, if deformation blur is on. Custom export commands will be called at each step, so it's important to use GetExporterState() to distinguish between this and the shape processing step (you do not want to create your custom objects again during motion processing). Callbacks of type ExportCallbackType_BeforeSubstep and ExportCallbackType_AfterSubstep are ran run before and after going through the shape list at each step, respectively.
  • Post-scene: all the objects have been processed, but the scene file hasn't been written to disk yet. Callbacks of type ExportCallbackType_AfterScene are ran executed now.

You are not forced to follow these steps precisely in your code. For example, if you can determine the motion and deformation of your object in the shape processing stage, you can set them up at the same time you create the object, and then do nothing when you are called during motion processing. You can create objects at any time, though when debug messages are on, the API will print a warning if you create objects during motion processing, since that usually indicates a problem in the code (it will still work, so you can ignore the warning if you really meant to do that).

...

Note that because all the callbacks are ran executed after the renderable camera has been determined, you cannot change the motion parameters such as shutter open time or motion interval length. You can create or edit cameras at any time and set the shutter speed you want, but the new setting will only affect the image exposure, not the motion blur length.

...