我已经使用了实时光线追踪(和raymarching等),但是在非实时光线追踪上却没有花太多时间-用于更高质量的图像或用于预渲染视频等。

我知道一种在非实时情况下提高图像质量的常用技术是在每个像素上投射很多光线并取平均结果。

是否还有其他技术能够与众不同?在非实时情况下要比通常在实时情况下做的更好的方法来改善图像质量?

#1 楼

路径跟踪是非实时照片级真实感渲染中的标准技术,您应该专门研究双向路径跟踪,以获得像焦散这样的效果,而基本路径跟踪实际上无法获得这种效果。双向路径跟踪还可以更快地收敛到地面真实情况,如下图所示:

大都会轻型运输(MLT)是一种更先进的路径跟踪技术,通过变异,它甚至可以更快地收敛到地面真实情况现有的“良好”路径:


您还可以通过将更多的光线聚焦到更重要的方向上,使用重要性采样来加快收敛速度​​。即通过将基于BRDF的光线聚焦(使用概率密度函数将光线聚焦到BRDF峰值)或光源,或者在两个世界中获得最佳效果并使用多重重要性采样。

这一切都是关于以无偏方式降低噪声。还有降噪技术可以进一步减少渲染图像中的噪声。


我认为最好先实现基本的蛮力蒙特卡洛路径追踪器作为无偏参考,然后再研究更先进的技术。犯错和引入偏见是很容易的,因此易于实施,可以作为参考。

通过对参与的媒体应用路径跟踪,您还可以获得一些非常好的结果,但是变得非常慢:D


#2 楼

最大的优点之一是使用构造实体几何而不是三角形网格。射线三角形的相交比几乎任何其他射线形状的相交都快,但是要花大量的三角形才能近似圆柱或圆环的表面,更不用说一些真正奇特的形状,例如茱莉亚分形或广义参数函数。一些渲染器支持。

另一个是使用渲染时光子贴图和漫反射计算:这可以让您在变化的场景中获得准确的照明效果。在实时光线跟踪中,这些计算成本太高,因此要么将光源和主要几何元素强制固定(以允许进行预先计算),要么将其效果完全忽略。

评论


$ \ begingroup $
细分曲面的使用远远多于构造实体几何。它们仍然包含三角形(或其他样条线)。
$ \ endgroup $
–user458
15年8月24日在18:06

#3 楼

即使在撰写本文时我不了解蒙特卡洛路径追踪,但我还是无意中描述了它。具有讽刺意味的是,蒙特卡洛路径跟踪是我当时要寻找的答案。

朴素的蒙特卡洛路径跟踪通过评估某种称为渲染方程的方法来对像素的颜色值进行数值求解。它通过在像素内随机抖动(有更好的采样策略和滤波:在像素内使用多个随机采样进行抗锯齿的基本原因是什么)以及在光线撞击表面时沿随机方向反弹来获取随机采样。

需要很多样本才能为您带来良好的效果,而没有足够的样本,您的图像看起来会很嘈杂。将样本减少一半所需的样本数是原来的4倍。使用8个现代CPU内核可以为一个简单的场景渲染时间大约为一个小时。

更高级的蒙特卡洛路径跟踪技术可以使您更快地获得更好的图像,例如重要性采样,或在渲染后对图像进行去噪。

蒙特卡洛路径跟踪可以创建逼真的图像,并为您提供许多高级渲染功能,因为它遵循物理定律,因此可以提供逼真的结果。

您可以在此处了解更多信息:
http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/

这是一个示例图像,使用我的全部8个cpu内核花费了大约一个小时来渲染: