动画性能改进

此版本显著提高了动画性能,尤其是在播放应用复杂绑定的动画时。

此版本对 GPU 变形工作流进行了多项改进。其中一项改进是解决了在进行 GPU 解算时频繁重建(或重新划分)图表的问题,有时,在发生更改时,这可能会对大型场景造成破坏。现在,创建和删除关键帧不再会导致进行不必要的重新划分。此外,使用显示层(Display Layers)隔离选择(Isolate Select)隐藏或显示对象时,新的调度模式可以大大减少重新划分。

另一项重要改进是,解算管理器现在能够以更精细的方式(而不是以几个大型簇的方式)针对 GPU 调度节点。这样可以更好地删减图表。

现在,解算器将声明可能会使用 GPU 解算的节点,而不是仅声明已完全检查并验证要使用 GPU 解算的节点。现在,启用 GPU 解算后,解算器会在重新划分后动态确定使用 GPU CPU 解算哪些节点,从而更快地响应动态更改,并大大降低重新划分的需求。

GPU 下载

GPU 下载/重建优化:大约 25 万个顶点的角色,具有 3 层面部绑定和 115 个关节

例如,上图中的角色有一个项链,该项链有一个将刚性吊坠附加到带子的 uvPin 节点。带子本身随身体几何体变形。以前,由于 uvPin 或毛囊不能使用 GPU 进行解算,因此整个角色不能使用 GPU 进行解算。

在此特定情况下,吊坠导致无法使用 GPU 解算项链,进而导致角色的整个身体无法使用 GPU 进行解算。解决方法通常是采用分辨率较低的平行变形结构。

现在支持 GPU 下载或回读。在对 CPU 网格应用 GPU 变形后会自动转化带子几何体。这样,便使用 CPU 计算约束。(在可视化图表中,它显示为从绿色变为蓝色的箭头。)

GPU 下载示例:上图是禁用“GPU 下载”的情况。下图是启用“GPU 下载”的情况,现在有更多绿色节点使用 GPU 运行

注: “GPU 下载”是解算管理器中的一项新功能。此功能始终处于启用状态,但您可以暂时将其禁用,将这作为使用解算工具包时的一个调试选项。或者,可以在 GPU 大纲视图中按连接节点组阻止“GPU 下载”,将这作为一项阻止策略。

解算工具包(Evaluation Toolkit)

为了深入了解解算情况,在解算工具包(Evaluation Toolkit)中添加了多个 UI 和调试工具。例如,现在您可以在视口中查看解算器声明了多少个节点,以及其中哪些节点使用 GPU 进行解算。

例如,下图显示了“351k [46/184]”,这意味着场景中大约有 351 000 个顶点,并且 deformerEvaluator 中的 184 个节点中有 46 个节点使用 GPU 进行解算。
此外,增强功能可在从解算工具包生成的可视化图表中显示更多信息:绿色节点使用 GPU 进行解算,而蓝色节点使用 CPU 进行解算。灰色节点作为解算器的外部输入和输出的节点。
还添加了一个新大纲视图,其中显示解算器中的所有节点、它们的解算方式、不能使用 GPU 对其进行解算的原因以及它们的分组方式。

GPU 大纲视图

还可以使用此项生成局部可视化的变形图,以仅关注场景的一小部分。

注:

由于 GPU 解算的效率很大程度上取决于可用硬件,因此有时可能需要手动控制以禁止使用 GPU 解算节点。

可使用大纲视图设置各种模式以阻止使用 GPU 解算节点(或节点集)。

新的“图形输出”(Graphical Output)选项
处理包含许多节点的大型场景时,生成的图表变得难以读取。现在,解算工具包(Evaluation Toolkit)“6) GPU 覆盖”(6) GPU Override)“图形输出”(Graphical Output)区域中提供了一些选项,可用于选择所需的输出。

“解算工具包”(Evaluation Toolkit)的“GPU 大纲视图”(GPU Outliner)部分中新增的“图形输出”(Graphical Output)部分

GPU 图表构建改进
  • 仅当相邻节点使用 GPU 进行解算时,通过节点才会使用 GPU 进行解算

  • 下载策略仅允许在有足够的顶点和节点时下载,从而防止速度减慢

  • 基于所有可声明节点(而不仅仅是网格)构建图表

  • 阻止特定组中下载的 groupDownload 策略

  • 忽略通过节点(而不仅仅是 groupParts)

拒绝下载

解算工具包(Evaluation Toolkit)“6) GPU 覆盖”(6) GPU Override)部分的“调试”(Debug)区域中添加了两个新调试选项:“允许下载”(Allow Downloads)“拒绝允许下载”(Allow Download Rejections),可用于禁用或忽略下载拒绝策略。

新的 GPU 大纲视图

解算工具包(Evaluation Toolkit)“6) GPU 覆盖”(6) GPU Override)部分中添加了“大纲视图”(Outliner)构件,以显示 deformerEvaluator 中的节点。

GPU“大纲视图”(Outliner)具有以下功能:
  • 显示解算器中的节点及其分组方式。
  • 显示哪些节点使用 GPU 进行解算,导致下载到 CPU,哪些节点使用 CPU 进行解算。
  • 具有过滤器,因此可以限制符合特定条件的节点的视图,例如:
    • 匹配通配符名称
    • 仅属于网格
    • 仅使用 GPU 进行解算
    • 对通过节点进行过滤
    • 显示上传/下载状态
    • 设置了阻止策略
    • 对组使用目标网格的名称
    • 打开、新建、引用或导入文件时更新。
通过右键单击菜单,可以选择节点、将其可视化为图表或设置阻塞策略。

HUD 更新

平视显示仪 (HUD) 上 GPU 覆盖信息的准确性得到了提高,它现在显示 deformerEvaluator 中有多少节点使用 GPU 进行解算。以前,HUD 仅显示场景中的顶点数。

除了显示场景中顶点数的“GPU 覆盖”(GPU Override)条目外,新数据点还使用斜杠 (/) 将使用 GPU 进行解算的节点数与场景中的节点总数分隔开来。例如,上图显示了“351k [46/184]”,这意味着场景中大约有 351 000 个顶点,并且 deformerEvaluator 中的 184 个节点中有 46 个节点使用 GPU 进行解算。

更新了并行解算模式行为

禁用“通道盒”(Channel Box)属性触发场景图形重建的问题已解决。

从“属性编辑器”(Attribute Editor)中移除了冻结选项

冻结不再是“属性编辑器”(Attribute Editor)节点行为(Node Behavior)选项的一部分。有关疑难解答和测试节点解算的工具,请参见解算工具包(Evaluation Toolkit)