
0 前言
我们研究材质,其实是研究材质如何与光线作用,也就是研究BRDF这个思想将是这节的核心
1 漫反射材质 Diffuse / Lambertian Material (BRDF)
首先我们来看漫反射材质
- 对于漫反射材质,之前我们经验性地定义过漫反射系数在Blinn Phong的时候,我们用 Intensity/R² 来不准确地定义到达着色点的能量
- 现在我们给漫反射项的系数来一个准确的定义定义上图的材质是漫反射,也就是无论哪个方向的光进来,都会被均匀地反射到四面八方去
- 我们现在人为地做这么一个场景我们认为空间中从任何一个方向进来的光,它的Radiance都是一样的,也就是让进来和反射的光都是uniform的
- 有了以上条件之后,假设这个点不发光且不吸收光,我们就可以利用能量守恒,也就是进来的光的能量多少,出去也得多少
- 我们总结:入射和出射的Irradiance是相等的并且Radiance都是uniform的→入射光和出射光的Radiance是一样的
- 有了这个观察总结以后,渲染方程中的入射光可以从积分里拿出来,然后进行半球上cos的积分,得到式子,并且L_i=L_o
- f_r = 1/π是完全不吸收能量的BRDF
- 我们可以定义一个反射率(albedo),它在0到1之间,于是有了它就可以引入不同颜色的变化
2 光泽材质 Glossy material (BRDF)
反射情况介于镜面反射和漫反射之间的材质,我们称为Glossy material
3 理想反射/折射材质 Ideal reflective / refractive material (BSDF)*
反射和折射都有的材料的,类似玻璃与水,我们称之为 Ideal reflective / refractive material
3.1 完美镜面反射 Perfect Specular Reflection
- 反射公式
- 下图为完美镜面反射的效果图
3.2 镜面折射 Specular Refraction
我们依旧采用几何光学的说法来描述折射以下为一些折射现象
- 白光分解成彩虹:折射率不同
- 下面我们来看一下 折射定律 Snell’s Law
3.3 双向散射分布函数 (Bidirectional scattering distribution function, BSDF)
折射也需要对应一种 “BRDF” 但是我们知道BRDF的R是反射(Reflectance) 所以折射应该叫BTDF,T为折射(Transmittance) 把这两个统称起来我们可以叫做BSDF,S表示散射(Scattering) 不管反射折射我们都认为是一种散射 BSDF(散射) = BRDF(反射) + BTDF(折射)
3.4 菲涅尔项 Fresnel Reflection / Term
关于反射和折射有很多性质,下面这个为菲涅尔项 我们有这么一个例子,一本书靠在墙边,我们从上到下不同视角看它 我们发现一个问题,我们类似垂直看下去,几乎看不到什么反射 但是几乎平着看过去,反射特别明显 所以有多少光被反射,是和入射光与法线的角度有关系的 用菲涅尔项我们就可以判定有多少能量被反射,有多少能量被折射
- 下图为对某个折射率为1.5的绝缘体的菲涅尔项数据
- 对于导体来说又是另一种菲涅尔项
- 我们要怎么样准确计算菲涅尔项呢
4 微表面模型 Microfacet Material
为什么要提菲涅尔项,是因为我们要引入真正基于物理的材质——微表面模型
-
我们先从卫星图引入 可以看出拍摄的地球有一个高光在澳大利亚,这个高光挺完美,和球面似的 但是我们会觉得不对,因为地球表面有山啊树啊地形啊什么的,应该是一个相当复杂的表面 但是现在却看到类似平面高光,还有一定粗糙程度 这说明从远处看,我们看不到各种细节,只会看成一个表面,带点粗糙程度的样子 所以我们提出如下假设:离得足够远的时候,微小的东西往往看不见,看见的是最后汇聚起来总体的样子
-
微表面模型做了这么一个事情 它假设物体表面是粗糙的 从远处看是一个粗糙的平面(从远处看到的是外观) 从近处看可以看到凹凸不平的表面,并且每一个表面的微元都是完完全全镜面反射的物体,都有各自的朝向和法线(从近处看到的是几何) 我们为什么要研究这个呢?
我们可以研究这些微表面本身法线的分布,这些分布可以代表不同粗糙程度的材质
微表面模型的BRDF F为菲涅尔项,考虑入射和半程向量 D为法线分布,考虑查询半程向量是否在法线分布上 G为几何项,考虑可能发生互相遮挡,有些微表面会失去它的作用。在几乎和表面平行的光线上容易发生互相遮挡的现象,我们把这种光线角度称为Grazing Angle,G这一项就是为了修正它,让它不要过亮
我们可以看到微表面模型的一些例子
如果提到PBR(Physically Based Rendering / Shading)就一定会提到微表面模型
微表面模型也有一些缺点,Diffuse比较少,有时需要手动加什么的
微表面模型是统称,其实有很多不同的模型,但是都遵守微表面这一套
5 各向同性/各向异性材质(BRDFs) Isotropic / Anisotropic Materials (BRDFs)
下图是电梯间内部的图,我们发现高光是条状的,这和我们之前椭圆状的高光的认识不符
这也是由于材质造成的,这是被磨过的金属造成的高光
于是我们引出了接下来区分材质的方法,各向同性与各向异性材质
所谓各向同性,我们认为它的微表面并不存在一定的方向性
对于各向异性,我们认为它的微表面存在方向性
反映在BRDF上的效果
如果这个BRDF在方位角上旋转得不到相同的BRDF,我们就叫它是各向异性材质
生活中有很多各向异性材质,会有辐射状的高光
6 总结BRDFs
非负Non-negativity:描述能量分布
线性Linearity:可加,组合
可逆性Reciprocity principle:交换入射和出射,结果一致
能量守恒Energy conservation:能量要么前后一致,要么变小(被吸收),最后的能量结果是收敛的
各向同性:BRDF只与相对方位角有关
根据可逆性,BRDF可以不用考虑方位角的大小,只需要他们差的绝对值,便于储存
7 测量BRDFs
- 实际测量出来的BRDF和推算出来的BRDF经常会有很大差距如果可以测量的话,也就不用推导模型,直接用数据了
- 盯住一个着色点,给定入射出射的方向进行测量参数测量十分精确
- 参数测量十分精确我们枚举入射和出射方向测量光源方向+相机方向 是四维的测量,维度爆炸所以我们进行优化如果是各向同性,可以用三维 ,还有根据可逆性,可以节省一半或者采样部分,剩余插值(猜测)
- 存储BRDF,不做细说