在极少数情况下,渲染图像可能与交互式窗口中显示的内容不匹配。如果对节点以不同的顺序求值,不同的解决方法可能导致这种情况。。
最常见的实例是:多台计算机中隔开的渲染产生不一致的结果;动画范围内任意帧单独渲染;或使用运动模糊进行渲染产生与不用运动模糊时不同的结果。
可能产生不需要的渲染匹配的场景元素包括:
- 任何依存关系图循环。
- 任何节点上已设置动画的 nodeState。
- 已设置动画的变换限制。
- 多链 IK 解算器。
- 基于以前的值修改值的表达式。例如:tx = tx + 1。
- 有条件地设定值的表达式。例如:if (ty > 5) tx = ty。
- 执行命令(或创建或删除 Maya 节点)的表达式。例如:球体。
- 粒子/柔体解决方案(由于时间步更改)。
- 几何体约束节点(因为它们转到目标几何体上最接近当前点的点)。
- 目标权重值总和为零的任何约束。
- 目标、切线或法线约束或 worldUpType 属性设定为“无”的 lookAt 节点。
- 目标、切线或法线约束或上方向向量与目标向量共线的 lookAt 节点。
- 已设置动画 solverEnable 值的 IK。
解决方案
渲染器可以在即将渲染帧的前一步调用 MEL 过程。写入(或查找)MEL 过程,该过程强制其间的求值跳过帧。将该脚本命名为 preFrameProc.mel。在文本字段中指定该脚本。
使用 MEL 脚本
- 创建 MEL 脚本;将其命名为 preFrameProc.mel 并放置在 Maya 脚本目录中。
- 在下,在字段中键入 preFrameProc。
如果启用运动模糊,您可能需要烘焙动画。