Cycles在过去的十年中,已经发展成为一个成熟的制作渲染器,被许多艺术家和工作室使用。在这 10 年里,我们学到了很多东西,这些东西效果很好,但也学到了一些效果不好的东西,或者随着渲染算法和硬件的演变而过时。

我们渴望对核心循环渲染进行更大的改进。然而,过去做出的一些决定阻碍了绩效,使守则难以维护。为了解决这个问题,Sergey 随后我启动了一个名为"Cycles X"的研究项目,目的是更新建筑,并为未来做准备 10 年做好准备。我们不是找到只解决部分问题的快速修复或优化,而是重新思考整个架构。

项目

从广义上讲,该项目的目标是:

改善未来发展的架构

提高视图端口和批量渲染的可用性

提高现代 CPU 和 GPU 的性能

引入更高级的渲染算法

我们的第一个目标是验证新架构。为此,我们实现了新的 GPU 内核的原型,以及查看端口和批量渲染的新调度算法。现在有足够的功能来呈现我们的一些基准场景。

cycles使用教程(你竟然是这样的少年)(1)

当前Cycles内核图

今天,我们将共享一些初始性能结果,并发布代码以与循环贡献者协作。为开发人员提供有关新架构的技术演示,代码可在git.blender.org上的cycle-x 分支中找到。

还有很多工作要做。我们预计至少需要6个月的时间,这项工作是官方blender发布的一部分。

初步结果

首先,GPU 渲染的一些结果与著名的基准场景。场景已被修改,以删除尚未实现的体积渲染等功能。

请注意,随着我们继续构建新架构,数字将发生变化。就在几天前,帕特里克·莫尔斯添加了OptiX支持。

cycles使用教程(你竟然是这样的少年)(2)

cycles使用教程(你竟然是这样的少年)(3)

cycles使用教程(你竟然是这样的少年)(4)

cycles使用教程(你竟然是这样的少年)(5)

cycles使用教程(你竟然是这样的少年)(6)

最重要的改进是在内部场景与许多轻弹跳和着色器,其中新的内核可以实现更高的占用性和连贯性。

此时,CPU 渲染性能与以前大致相同,但新架构也为新的可能性提供了新的可能性。

其次,我们一直在努力改进视网端口渲染。更快的渲染内核会有所帮助,但我们也发现,改进调度、计时和显示机制可以使视图端口感觉更具交互性。自适应取样和分批样品的新视口支持使图像在完成前几个样品后清理得更快。

期待

在接下来的几个月里,我们将尝试更多的优化理念,并恢复缺失的功能。缺少功能时,通常是因为我们想要在新架构中采用不同的方法。一些示例:

体积渲染:我们计划采用更现代的算法实施射线拉线和光采样

影子捕手:我们将尝试不同的算法,可以考虑间接光

多设备渲染:我们将尝试更细粒分的负载平衡,无需瓷砖

除此之外,新的架构应该让我们更容易地适应渲染算法,如路径引导,我们将尝试和研究如何使它们对GPU友好。

折旧

作为新架构的一部分,我们正在删除一些功能。尤其是:

打开CL渲染内核。有限周期拆分内核实现、驱动程序错误和 OpenCL 标准停滞的组合使得维护变得过于困难。我们只能从一个干净的石板开始,进行我们现在正在进行的各种更大的改变。

我们正在与 AMD 和英特尔合作,让新的内核处理器 GPU,可能使用不同的 API。这不一定为第一次发布做好准备,实现需要达到比现在更高的质量标准。从长远来看,支持所有主要的 GPU 硬件供应商仍然是一个重要目标。

分支路径跟踪。我们正在努力改进采样算法,使此过时,并在需要时自动分配样本。改进的自适应采样和光重要性采样是这里的关键。

恩拉姆 · 德诺伊瑟AI 去名化算法,特别是开放图像否认通常会产生更好的结果,我们将为他们优化架构和工作流程。

这些功能将保留在 2.83 和 2.93 LTS 版本中可用和支持。

文章来源:Cycles X — Blender Developers Blog

,