文章概述
本文旨在为具有基本计算机图形知识的用户,了解什么是 SideFx Houdini 和 Autodesk Arnold、基本的可视化知识、什么是 AOVs、层,场景,材质以及如何创建它们,在哪里可以找到它。Arnold Renderer 的基本知识请参阅Arnold 基础知识,这将帮助您更好地学习本文。以便理解我们在做什么,为什么要做,因为我们不会很多关于动作和参数的描述。
那么我们在这篇文章中讨论的是什么呢?
我们将试着浅显地温习,而不是深入数学和物理术语和公式,什么是焦散,什么是阿诺德渲染器焦散,什么是蒙特卡罗、路径跟踪。
我们将努力了解他们的优势和缺点。
我们将做一些研究,并得出结论,根据本文的测试,如何实际的在单向路径追踪中使用焦散。
在最后,我们将研究一个小的例子,在可视化玻璃中使用的焦散纹理贴图。
但使用可视化,特别是玻璃对象的可视化时,创建真实的渲染的一个重要的步骤是,模拟真实世界中光的反射和折射,以及表面的真实交互,简单的说也就是焦散。因此了解什么是焦散,它是如何形成的,以及如何创造它,是玻璃对象效果的重要因素。
首先我们来看看焦散是什么。
焦散是啥
这是一种物理想象,是由于明亮的光线和材质的反射特性而形成的,当一束光照射在物体表面上,它的一些光线被反射和折射,从而会改变方向和轨迹,落在相邻物体的表面上,形成一定的形状,在这些光线集中的地方,会形成较亮的光斑,当阳光照射在玻璃或液体材质上,比如一杯水,就会产生焦散,并根据折射光在阴影中形成明亮的区域。
在计算机图形学(CG)中,焦散模型是基于其物理性质的形成,除了一些细微差别,我们将在后面讨论。
几乎所有的渲染系统都支持焦散,有些甚至体积焦散。在这个例子中,我们将使用 Arnold 渲染器,并尝试了解这个渲染引擎是否支持焦散,为什么焦散那么难搞,以及代价是什么。
让我们试一试,从一部分到另一部分,依次理解。
Arnold 渲染器
Arnold 是一种无偏的、单向(uni-directional(向后 backwards))的 CPU/GPU 路径追踪渲染器,基于经典的蒙特卡罗射线追踪。
让我们更详细地看看这个定义,这是一种蒙特卡罗(MC)渲染方法,由 James Kajiya 在 1986 年提出,该方法试图最大限度地模仿全局光照和材质的正确动作,并且不存在任何系统误差。
如今,几乎所有的视觉化工具都支持无偏的,这种趋势化的渲染模型,不同于以往的有偏渲染算法,需要调整许多参数并使用造假来达到预期的效果,路径跟踪(PT)则更容易,也更方便用户。为了获得可接受的结果,您不需要再调整一大堆渲染工具设置、光源和着色器中的许多无法理解的参数。
在所有的 PT 方法中,单向(向后)方法被认为是迄今为止最真实、最精确的渲染方法,该方法获得的图像可以作为与其他方法比较的参考。这种方法的缺点是绘制时间长、图像噪点多。
反过来,单向(向后)意味着我们的跟踪路径是,从相机到光源发射出一束光线,击中表面后,在场景中以随机方向反射的光束,直到它击中光源,然后我们才能得到照明场景的结果。这种方法对于 CG 来说是最有效的,因为要跟踪从光源到摄像机的路径,我们需要从光源释放大量的光线,而且大多数光线根本不会射入摄像机,这将使场景中的光线计算错误成吨的增长。
在单向 PT 的缺点中,我们会注意到焦散问题。
单向 PT 跟踪到光源的直接路径,并且不考虑折射或反射光的照射,因此我们无法计算焦散形成的地方,来自哪些光线的照明,因此,像结果一样,我们得到强噪点或像萤火虫一样的鬼东西(图 5)。
为了解决这个问题,我们可以将间接漫反射采样增加到非常高的值。
同时不要忘记 Arnold 官方指出的限制,即:“面积为零的灯光,即点光源,阿诺德的 GI/反射/折射光线根本不可能击中灯光。因此,没有焦散”。
这意味着我们无法获得焦散,因为光源非常小,从相机发射的光线根本找不到焦散,因此我们也需要跟踪光源的路径。
Arnold 渲染器有一些优化参数,用于修复焦散和反射瑕疵(如萤火虫)中的问题:
-间接采样修剪(Indirect Sample Clamp),此参数的较低值将修剪高强度像素,例如我们可以修复闪烁的萤火虫。
-间接镜面反射模糊(Indirect Specular Blur),0 值在反射中提供最真实和准确的焦散,但结果噪点非常多。较高的值会产生焦散的模糊效果,但会从中修剪噪点。
我们将在下面的实践中考虑这些参数。
实际上有方法,可以达到目的,来获得更准确的焦散结果和渲染时间。
实施方法
2001 年 Henrik-Wann-Jensen 提出了光子映射 GI 方法。此方法是一个光源在表面上发射光线(光子)的过程,根据它们所击中的材质的特性,光子可以被折射、吸收或散射,在此之后,只有散射光子添加到列表中,并基于此列表形成光子贴图。
构建贴图后,光线从摄影机发射,而那些与表面上的光子相交的光线将会收集场景照明。这种方法是有偏的,说明得到的结果不是完全正确的,只会接近正确的结果,但是,增加光子数可以得到更精确、更真实的结果,但渲染时间更长。
基于 MC、Lafortune 和 Willems[1993]和 Veach 和 Guibas[1994]提出的双向路径跟踪(BPT)–PT 方法。他除了追踪摄像机的路径外,还追踪光源的路径,并在它们在表面相交后连接起来。BPT 在有许多间接光线(例如内部光线)的情况下非常有用。
BPT 在渲染焦散效果方面比单向 PT 更好更快,但也有一些问题,并且在许多反射光线和漫反射表面(镜面、漫反射、镜面反射)的场景中控制不好,例如,被玻璃封闭的对象、汽车或建筑物的内部,从而形成萤火虫(图 6)。
金属焦散
第一个例子,我们来研究金属物体的焦散反射,那么这有个指环。
首先,将模型加载到场景,并创建材质分配给它们,
背景材质参数为:
- Base 0.009
- Base Color 0.141 0.286 0.426
- Specular 0
置换金属材质设置参数为:
Base 1.0
- Base Color 0.5 0.35 0.13,
- Metalness 1,
- Specular Roughness 0.15.
Arnold 渲染设置:
- AA 采样为 16,其它设为 1.
- 漫射、镜面光线深度为 3.
- Bucket Size 24 渐进式渲染
摄像机参数:
- Translate -0.0914703 2.56 -1.89644
- Rotate -54.7786 -182.687 0.000320495
- Focal Length 60.
Disc 灯光参数:
- Translate -0.427792 3.10526 -2.8753
- Rotate -40.5046 196.958 -3.06731
- Exposure 10
- Spread 0.5.
得到第一次渲染效果如下:
下一步,让我们尝试在指环材质中启用焦散,然后再次按“渲染”按钮。
谢谢分享
??????
666
搞了半天合着是贴图
这个真的没看懂
这是RS渲染合成?
666666666
Dielectric_Priority
谢谢分享
谢谢分享
666