实时计算机图形中对表面进行着色的经典方法是将(朗伯(Lambertian))扩散项和镜面项(最可能是Phong或Blinn-Phong)结合使用。 />现在,随着基于物理渲染的趋势,以及诸如Frostbite,Unreal Engine或Unity 3D之类的引擎中的材质模型的趋势,这些BRDF发生了变化。例如(当时相当通用),最新的虚幻引擎仍使用Lambertian漫反射,但结合了Cook-Torrance微面模型进行镜面反射(特别是使用GGX / Trowbridge-Reitz和菲涅耳术语的修正的Slick近似)。此外,“金属”值用于区分导体和电介质。

对于电介质,漫反射使用材料的反照率进行着色,而镜面反射始终是无色的。对于金属,不使用漫反射,而是将镜面反射项与该材料的反照率相乘。

关于现实世界中的物理材料,是否存在漫反射和镜面反射之间的严格分隔,如果存在,则在哪里它来自哪里?为什么一个是彩色的而另一种却没有呢?为什么导体的行为不同?

#1 楼

首先,我强烈建议阅读Naty Hoffman的Siggraph演示文稿,其中涉及渲染的物理原理。就是说,我将尝试回答您的特定问题,并从他的演讲中借用图像。或折射。反射光会从表面反弹,类似于镜子。折射光会在材料内部反射,并且可能会从材料进入的位置离开材料一定距离。最后,每次光与材料的分子相互作用时,它都会损失一些能量。如果它失去足够的能量,我们认为它会被完全吸收。

引用纳蒂,“光是由电磁波组成的。因此,物质的光学性质与其电性质紧密相关。 。”这就是为什么将材料归为金属或非金属的原因。
非金属会同时显示反射和折射。
q金属2010年所有折射光都被吸收。取而代之的是,做一些假设和简化。距离实际上为零。
为方便起见,我们将光的相互作用分为两个不同的项。我们将表面反射术语称为“镜面反射”,将由折射,吸收,散射和再折射产生的术语称为“漫反射”。假设。对于大多数不透明的材料,此假设是可以的,与现实生活相差不大。但是,对于具有任何透明度的材料,该假设将失败。例如,牛奶,皮肤,肥皂等。

材料观察到的颜色是未被吸收的光。这是反射光以及从材料出射的任何折射光的组合。例如,纯绿色的材料会吸收所有非绿色的光,因此到达我们的眼睛的唯一光就是绿光。材料的衰减功能,即光如何被材料吸收。在我们简化的漫反射/镜面反射模型中,这可以用两种颜色表示,即漫反射颜色和镜面反射颜色。在使用基于物理的材料之前,艺术家会随意选择每种颜色。但是,这两种颜色应该相关联似乎很明显。这就是反照率颜色的来源。例如,在UE4中,它们按如下方式计算漫反射和镜面反射颜色:

1用于金属。 “镜面反射”参数控制对象的镜面反射(但对于99%的材料,通常为0.5)

评论


$ \ begingroup $
为什么反射/折射后入射光线会分裂?如果光线是粒子,是否意味着该粒子递归分裂?如果光是波,那是否意味着按频率划分(但是在这种情况下,为什么在第二/第三/等击中后它分裂)?
$ \ endgroup $
– nikitablack
2015年9月18日在6:59

$ \ begingroup $
粒子不会分裂。相反,这些图像显示了它可能采取的潜在路径。
$ \ endgroup $
–RichieSams
2015年9月18日在7:03

$ \ begingroup $
许多粒子将从(几乎)相同的角度撞击(几乎)相同的位置。对于每个出射的粒子,通常都会有一个粒子进入。这意味着从某个角度在某个点上的平均角度的粒子束平均化后会分裂成几次(很多)反射。
$ \ endgroup $
–棘轮怪胎
2015年9月18日在9:09

$ \ begingroup $
很好的答案可以帮助我解决大多数问题。为什么非金属的镜面部分是无色的,并且不受反照率的影响?极化如何以及在何处发挥作用?
$ \ endgroup $
– David Kuri
2015年9月18日上午10:58

$ \ begingroup $
“材料的观察颜色是未被吸收的光。”在这一点上,可能值得参考。是否存在RGB无法很好地代表常见的材料?讨论,因为荧光材料浮现在脑海。
$ \ endgroup $
–西蒙F
2015年9月18日在11:01



#2 楼

实际上,我几天前确实在想这个。在图形社区中找不到任何资源,我实际上走进了我大学的物理系,问道。

首先,当光线照射到表面时,将应用菲涅耳方程。反射/折射光的比例取决于它们。您可能知道这一点。

没有“镜面颜色”之类的东西

您可能不知道的是,菲涅耳方程根据波长而变化,因为折射折射率根据波长而变化。对于电介质(色散,有人吗?),变化相对较小,但对于金属,变化可能很大(我认为这与这些材料的不同电结构有关)。

因此,菲涅耳反射项随波长变化,因此优先反射不同的波长。在广谱照明下看到,这就是导致镜面反射颜色的原因。但特别是,不会在表面上发生神奇的吸收(其他颜色只是折射的)。

没有“漫反射”之类的东西。霍夫曼在与另一个答案相关的谈话中说,这实际上是对分散的表面下散射的近似估计。 )。光不会立即被金属吸收。实际上,它将很方便地穿过几纳米厚的材料。 (例如,对于金,将587.6nm的光(黄色)衰减一半需要11.6633nm。)对于金属,吸收系数要大得多(α=4πκ/λ,其中κ是折射率的虚部(对于金属〜0.5及以上),λ以米为单位)。

这种传输(或更准确地说,它产生的SSS)实际上是造成金属颜色很大一部分的原因(尽管确实,金属的外观受其镜面反射所支配)。

评论


$ \ begingroup $
谢谢!我只知道简化。这些额外的细节很棒
$ \ endgroup $
–RichieSams
2015年9月21日在6:07

$ \ begingroup $
这是一个有趣的答案。您能否澄清/链接缩写词SSS?
$ \ endgroup $
– trichoplax
2015年9月21日在20:28

$ \ begingroup $
@trichoplax谢谢! SSS ==次表面散射。
$ \ endgroup $
–imallett
15年9月21日在22:06

$ \ begingroup $
谢谢:)如果您在问题中加以澄清,它将在删除注释后仍然存在(不能保证长期存在)。我已经编辑了链接和悬停文本,希望可以使您的演示文稿保持完整。
$ \ endgroup $
– trichoplax
2015年9月22日9:48



$ \ begingroup $
虽然我很欣赏这个答案的精妙之处。亚表面散射被认为是毫米尺度的效应,而其真正的意义是,在分子范围内,所有事物都会以某种程度通过表面。但是基本的限制是,我们通常要计算毫米尺度的影响,并尝试将较低的水平抽象为统计模型。因此,千分尺立即等于,因为大多数像素看到的面积要大得多。同样适用于在物理上没有有意义地存在的颜色,就像我们的眼睛和大脑察觉到的一样
$ \ endgroup $
– joojaa
15/09/22在13:38