此版本显著提高了动画性能,尤其是在播放应用复杂绑定的动画时。
此版本对 GPU 变形工作流进行了多项改进。其中一项改进是解决了在进行 GPU 解算时频繁重建(或重新划分)图表的问题,有时,在发生更改时,这可能会对大型场景造成破坏。现在,创建和删除关键帧不再会导致进行不必要的重新划分。此外,使用显示层(Display Layers)或隔离选择(Isolate Select)隐藏或显示对象时,新的调度模式可以大大减少重新划分。
另一项重要改进是,解算管理器现在能够以更精细的方式(而不是以几个大型簇的方式)针对 GPU 调度节点。这样可以更好地删减图表。
现在,解算器将声明可能会使用 GPU 解算的节点,而不是仅声明已完全检查并验证要使用 GPU 解算的节点。现在,启用 GPU 解算后,解算器会在重新划分后动态确定使用 GPU 或 CPU 解算哪些节点,从而更快地响应动态更改,并大大降低重新划分的需求。
GPU 下载/重建优化:大约 25 万个顶点的角色,具有 3 层面部绑定和 115 个关节
例如,上图中的角色有一个项链,该项链有一个将刚性吊坠附加到带子的 uvPin 节点。带子本身随身体几何体变形。以前,由于 uvPin 或毛囊不能使用 GPU 进行解算,因此整个角色不能使用 GPU 进行解算。
在此特定情况下,吊坠导致无法使用 GPU 解算项链,进而导致角色的整个身体无法使用 GPU 进行解算。解决方法通常是采用分辨率较低的平行变形结构。
GPU 下载示例:上图是禁用“GPU 下载”的情况。下图是启用“GPU 下载”的情况,现在有更多绿色节点使用 GPU 运行
为了深入了解解算情况,在解算工具包(Evaluation Toolkit)中添加了多个 UI 和调试工具。例如,现在您可以在视口中查看解算器声明了多少个节点,以及其中哪些节点使用 GPU 进行解算。
GPU 大纲视图
还可以使用此项生成局部可视化的变形图,以仅关注场景的一小部分。
由于 GPU 解算的效率很大程度上取决于可用硬件,因此有时可能需要手动控制以禁止使用 GPU 解算节点。
可使用大纲视图设置各种模式以阻止使用 GPU 解算节点(或节点集)。
“解算工具包”(Evaluation Toolkit)的“GPU 大纲视图”(GPU Outliner)部分中新增的“图形输出”(Graphical Output)部分
仅当相邻节点使用 GPU 进行解算时,通过节点才会使用 GPU 进行解算
下载策略仅允许在有足够的顶点和节点时下载,从而防止速度减慢
基于所有可声明节点(而不仅仅是网格)构建图表
阻止特定组中下载的 groupDownload 策略
忽略通过节点(而不仅仅是 groupParts)
解算工具包(Evaluation Toolkit)的“6) GPU 覆盖”(6) GPU Override)部分的“调试”(Debug)区域中添加了两个新调试选项:“允许下载”(Allow Downloads)和“拒绝允许下载”(Allow Download Rejections),可用于禁用或忽略下载拒绝策略。
解算工具包(Evaluation Toolkit)的“6) GPU 覆盖”(6) GPU Override)部分中添加了“大纲视图”(Outliner)构件,以显示 deformerEvaluator 中的节点。
平视显示仪 (HUD) 上 GPU 覆盖信息的准确性得到了提高,它现在显示 deformerEvaluator 中有多少节点使用 GPU 进行解算。以前,HUD 仅显示场景中的顶点数。
除了显示场景中顶点数的“GPU 覆盖”(GPU Override)条目外,新数据点还使用斜杠 (/) 将使用 GPU 进行解算的节点数与场景中的节点总数分隔开来。例如,上图显示了“351k [46/184]”,这意味着场景中大约有 351 000 个顶点,并且 deformerEvaluator 中的 184 个节点中有 46 个节点使用 GPU 进行解算。
禁用“通道盒”(Channel Box)属性触发场景图形重建的问题已解决。
冻结不再是“属性编辑器”(Attribute Editor)中节点行为(Node Behavior)选项的一部分。有关疑难解答和测试节点解算的工具,请参见解算工具包(Evaluation Toolkit)。