在 Blender Institute,我们挑战自我,制作行业品质的电影,同时改进和开发 Blender 和开源管道工具。
特工327 Barbershop 的艺术目标之一是拥有高质量的运动模糊。已知运动模糊渲染是一项技术挑战,因此渲染时间通常非常长。这是因为我们与:
一旦动画准备好其中一个镜头,Andy 就准备使用最终设置(全分辨率、全部分支路径跟踪样本等)进行渲染,并将其运送到渲染农场(IT4Innovations、VSB - 技术)俄斯特拉发大学)。
以下是所使用的一些机器的规格。
gcc_node_1
- 使用 gcc 5.3 编译的 Blender,with_cpu_sse=on,qbvh=on(24 cores = 2x Intel Xeon E5-2680v3, 2.5GHz)intel_cpu24_2xMIC
- 使用 intel 2016.03 进行编译,并带有补丁 https://developer.blender.org/D2396%EF%BC%88+ 循环样本移至循环像素),with_cpu_sse=off,qbvh=off(使用 Xeon Phi 协处理器)渲染花了一些时间,当所有帧完成后,我们生成了以下剪辑:
该图是通过收集 2 种不同系统配置(黄色是“gcc_node_1”,绿色是“intel_cpu24_2xMIC”)上的渲染时间并将其叠加在动画上(带有与当前帧匹配的时间标记)来制作的。
问题:某些帧的渲染时间超过 100 小时。解决方案:修复循环!
第一步是减少场景的整体渲染时间,以便更快地进行更多测试并收集测量结果。
下面的图表比较了具有和不具有运动模糊的同一动画的渲染时间。请注意,y 轴使用对数刻度。在某些情况下,由于运动模糊,帧速度会慢 100 倍。
这似乎主要是由于运动模糊,尤其是头发。谁知道呢!
经过几天的调查,Sergey 改进了 BVH 结构的头发边界框的布局。这意味着什么?即将推出更深入的解释。
这带来了显着的性能提升,渲染时间缩短了 10 倍。
之后,他对三角形(针对实际角色几何形状)应用了相同的优化,这进一步提高了性能,将全帧渲染速度提高了 8 倍。
请注意,该图在 y 轴上使用对数刻度。为了更好地了解性能影响,请查看下面的线性图表。
此优化会影响内存使用量,但影响很小(此镜头的内存使用量仅增加 15%)。
制作文件已提供供大家测试和验证结果。
Gooseberry 项目期间解决了类似的挑战。在这种情况下,重点是内存优化。
感谢 Blender Cloud 订阅者支持内容驱动开发:改进 3D 软件的最佳方式,这一生产挑战再次得到解决。
还不是 Blender Cloud 订阅者?考虑成为其中一员!
您可以查看这些提交并自行构建最新的 Blender。或者等待几个小时,即可在 上获取。
加入 并发表评论。