In rare cases, a rendered image may not match what is displayed in the interactive window. This may be caused by different Dependency Graph solutions if nodes are evaluated in a different order.
The most common occurrences are: renders that are divided among multiple machines produce inconsistent results; an arbitrary frame within an animation range is rendered alone; or rendering with motion blur produces different results than rendering without motion blur.
Scene elements which may produce undesirable render matching include:
- Any dependency graph cycle.
- Animated nodeState on any node.
- Animated transform limits.
- The multi-chain IK solver.
- Expressions that modify values based on a previous value. For example: tx = tx + 1.
- Expressions that conditionally set values. For example: if (ty > 5) tx = ty.
- Expressions that execute commands (or create or delete Maya nodes). For example: sphere.
- Particle/softbody solutions (because of timestep changes).
- Geometry Constraint nodes (because they go to the point on the target geometry that is closest to the current point).
- Any constraint where the sum of the target weights is zero.
- Aim, tangent, or normal constraint or lookAt nodes with the worldUpType attribute set to None.
- Aim, tangent, or normal constraint or lookAt nodes with the upVector co-linear with the aimVector.
- IK with an animated solverEnable value.
Workaround
The renderer can invoke a MEL procedure just before you render a frame. Write (or find) a MEL procedure that forces evaluation at the intervening skipped frames. Name this script preFrameProc.mel. Specify this script in the Render Settings > Render Options > PreRender Mel text field.
To use a MEL script
- Create the MEL script; name it preFrameProc.mel and put it in your Maya scripts directory.
- Under Render Settings > Render Options, type preFrameProc in the PreRender Mel field.
If motion blur is on, you may need to bake the animation.