
基于物理的渲染(PBR)是一个近几年时常见诸于各大 游戏行业技术交流、游戏开发商公关以及游戏媒体口中的词汇。这个词涵盖内容广泛,定义又十分模糊。目前人们所指的游戏中基于物理的渲染包括不少方面,例如线性空间,镜头模型,HDR等等,内容五花八门,极易让外行误解。本系列科普将重点介绍PBR的核心内容——双向分布反射函数,英语简称BRDF。什么是BRDF?BRDF是用来描述材质表面反射的函数,而更加贴近真实世界的材质效果正是PBR的最主要部分。在本文开头我们先不管BRDF的具体定义,而是通过几个具体例子来一步步深入游戏中PBR的基本理论。以下例子主要是对Siggraph上PBR course的翻译,个人认为这是个非常好的PBR入门介绍。
第一个例子,一杯清澈的水,当光线穿过杯子里的水时只有很少一部分光会被吸收和散射,所以我们能清晰地看到杯子后的物体。

第二个例子,一杯茶,当光线通过茶水时,一部分光被吸收,但是没有光线被散射,光线在茶水中始终保持基本一致的传播方向。所以我们看到的现象是,茶水中映出来背后物体的像变暗了,但依然清晰可见。

第三个例子,在一杯水里加些牛奶,当光线穿过液体时,大量光线被散射,部分被吸收,一部分被散射光线穿过牛奶到达我们眼睛。这种情况下,水杯后物体的像已经基本看不清了,但我们能观察到加入牛奶后液体显现的白色

第四个例子是杯可乐,此时通过液体的光线基本被完全吸收,我们看不到杯子背后物体的像,液体也完全变为黑色。

通过这四个例子我们简单复习了一下什么是散射什么是吸收。在接下来我们将把这种现象类比到两类最常见的材质种类——金属和电介质。
电介质便是那些基本不导电的物体,例如 石头和塑料,这些常见的不导电物体都是电介质。我们先以理想光滑表面为例,当光线入射到表面时,一部分被反射,一部分被折射,遵从我们最熟悉的反射和 折射定律。

如果是金属的话,折射的那一部分会被立即吸收,只留下被反射的那部分光。

如果是电介质的话,折射的那部分光就不是被吸收了,而是被散射。

现在我们就可以引出 漫反射和表面下散射的概念了。如果被折射光进入电介质表面后,在被散射的情况下只“走”了极短的一段距离后就重新进入空气,并向各个方向均匀地散射开来的话,我们称这种现象为漫反射(diffuse),如图中蓝色射线所示。

如果光线在折射后被散射,在物体的表面下传播了一段明显的距离后,又重新从表面下回到空气中,我们称之为表面下散射(也就是常说的3S,很多国内文章翻译为次表面散射,个人觉得不妥)。

最为常见的表面下散射现象就是人的皮肤。

而对于金属,如上文所说,折射的那部分光被吸收,所以金属基本只有高光分量(specular),没有 漫反射分量。所谓高光分量此时也很清楚了,也就是入射光被反射后维持一定方向性,较密集地射入空气的现象。下图圆圈中圈起的就是高光分量。

金属的高光往往是带有颜色的,而电介质的反射光一般是白色,也就是入射光是什么颜色,反射光还是什么颜色,这是两种材质的另一个重要区别。
物体表面的粗糙程度决定了高光分量的密集程度,物体表面越粗糙,高光分量越不密集,反射的像也越模糊。所以清晰的反射像和模糊的高光本质上是一个东西。下图从右到左展示了材质表面粗糙度递增的现象以及对应的材质示例。

此外,材质表面越粗糙,高光“覆盖”的范围就会越广,而高光也会越暗,这是一种基本的能量守恒现象。
