渲染期间绕过节点
作为一个Nuke脚本变大并开始包含许多节点,脚本的处理可能需要更长的时间才能响应。对于需要更多处理能力来进行计算的节点(例如GPU加速节点),尤其是这种情况,在脚本中工作时可能会导致滞后。大量处理节点的一些示例在使用时可能会导致速度降低Nuke包括:BlinkScript,卷积,降噪,散焦,Kronos,MotionBlur,OFlow,VectorGenerator和ZDefocus。
对于这样的脚本,其中的工作变得困难且出现滞后,这很方便$gui表达式运算符,可用于禁用用户界面(GUI)处理。的$gui表达式中的运算符返回1或0作为结果:
• 通过GUI计算节点时返回1。
• GUI不在处理节点时,在渲染时返回0。
将其添加到节点的标准方法是通过表达式。在功能方面,它的行为类似于Switch节点,但由是否使用GUI驱动,这使其具有自主性。
注意: 这些节点是GPU加速节点,如果您有快速图形卡,则$gui表达式中可能不需要运算符。但是,如果遇到滞后,请使用$gui与GPU加速结合使用的表达式可能会有所帮助。
的 最常见的用途 $gui运算符Nuke是: 切换方式, 禁用方法和选择性变异法。
切换方式
Switch方法是最常用的使用方法$gui在表达式中。与其他方法不同,它允许您禁用Switch节点并在不需要时关闭表达式。
1. | 在处理器较重的节点之后创建一个Switch节点。 |
2. | 右键单击“切换”节点的which控制,然后选择Add expression... |
3. | 在表达式框中键入$gui。 您应该会看到结果显示为1,因为在Nuke GUI。 |
4. | 连接0输入到处理器重节点(在此示例中为具有20个样本的MotionBlur节点)。 |
5. | 连接1输入到处理器重节点(在此示例中为Transform节点)之前的节点树。 |
6. | 通过GUI播放Viewer帧,您将看到处理更快,因为它绕过了MotionBlur节点并且不显示应用于最终图像的模糊结果。 |
7. | 要处理MotionBlur并查看最终结果,请使用渲染到磁盘Render in background或者Frame Server。这使用了外部程序Nuke GUI,同时不应减慢脚本操作。 |
注意: 如果您不在后台渲染或使用Frame Server,则渲染使用与Nuke GUI,将无法按预期工作。
8. | 渲染后,将处理并显示运动模糊的结果。 |
禁用方法
禁用方法使用disable选项,而不是使用“切换”节点。节点较少,这会更干净一些,但更难于关闭表达式。
注意: 使用Disable方法意味着您必须删除表达式才能在GUI中查看节点处理结果,它会完全绕过该节点。
1. | 右键单击MotionBlur的disable控制选择Add expression... |
2. | 类型$gui在表达式控件中,然后单击OK。 |
3. | 播放查看器,以查看MotionBlur节点处理被绕过并且不显示任何模糊效果。 |
4. | 渲染的结果与切换方式,但是,您必须完全删除该表达式才能重新启用模糊效果。 |
选择性变异法
选择性变化方法使用$gui运算符表达式,结合其他两个值。这允许设置两个独立的数值,这些数值可以根据哪种模式分配给参数Nuke位于(在GUI中或在非GUI中渲染期间),仅适用于开/关值结果。表达式如下所示:
$gui?0:20
0是要使用的值Nuke GUI模式和20渲染期间在GUI模式之外使用的值。
注意: 使用Selective Variation方法意味着您必须删除表达式才能在GUI中查看节点处理结果,它会完全绕过该节点。
1. | 在节点(在本示例中为MotionBlur节点)中,表达式$gui?0:20已添加并分配给Shutter Samples控制。这将在GUI中渲染0个样本,在后台渲染期间渲染20个样本。 |
2. | 如果通过GUI进行播放,您将看到它访问了MotionBlur节点,但是值保持为0,直到使用渲染为止。 Render in background,届时将使用20个样本。 |
3. | 渲染的结果与切换方式。 |
抱歉,您没有找到此帮助
为什么这没有帮助? (检查所有适用)
感谢您抽出宝贵时间给我们反馈。