0 前言

我们研究材质,其实是研究材质如何与光线作用,也就是研究BRDF
这个思想将是这节的核心

1 漫反射材质 Diffuse / Lambertian Material (BRDF)

首先我们来看漫反射材质
在这里插入图片描述关于漫反射,我们需要进行漫反射系数的讨论
在这里插入图片描述

  • 对于漫反射材质,之前我们经验性地定义过漫反射系数
    在Blinn Phong的时候,我们用 Intensity/R² 来不准确地定义到达着色点的能量
  • 现在我们给漫反射项的系数来一个准确的定义
    定义上图的材质是漫反射,也就是无论哪个方向的光进来,都会被均匀地反射到四面八方去
  • 我们现在人为地做这么一个场景
    我们认为空间中从任何一个方向进来的光,它的Radiance都是一样的,
    也就是让进来和反射的光都是uniform的
  • 有了以上条件之后,假设这个点不发光且不吸收光,我们就可以利用能量守恒,也就是进来的光的能量多少,出去也得多少
  • 我们总结:
    入射和出射的Irradiance是相等的并且Radiance都是uniform的→入射光和出射光的Radiance是一样的
  • 有了这个观察总结以后,渲染方程中的入射光可以从积分里拿出来,然后进行半球上cos的积分,得到式子,并且 L i = L o L_i=L_o Li=Lo
    于是我们得到 f r = 1 / π f_r=1/π fr=1/π
  • f r = 1 / π f_r=1/π fr=1/π是完全不吸收能量的BRDF
  • 我们可以定义一个反射率(albedo),它在0到1之间,于是有了它就可以引入不同颜色的变化
    也就是 f r = ρ / π f_r=ρ/π fr=ρ/π,所以漫反射系数的大小是0到1/π

2 光泽材质 Glossy material (BRDF)

反射情况介于镜面反射和漫反射之间的材质,我们称为Glossy material
在这里插入图片描述

3 理想反射/折射材质 Ideal reflective / refractive material (BSDF*)

反射和折射都有的材料的,类似玻璃与水,我们称之为 Ideal reflective / refractive material
在这里插入图片描述

3.1 完美镜面反射 Perfect Specular Reflection

  • 反射公式
    夹角是平行四边形法则,如左图
    方位角为右图,右图为俯视图
    在这里插入图片描述
  • 下图为完美镜面反射的效果图
    我们用BRDF来描述完美镜面反射的时候,要用到δ函数,写出正确的BRDF有些困难
    在这里插入图片描述

3.2 镜面折射 Specular Refraction

我们依旧采用几何光学的说法来描述折射
以下为一些折射现象

  • 白光分解成彩虹:折射率不同
    海水的折射,Caustics (不合适的翻译:焦散。因为只有聚焦才能被看到)
    在这里插入图片描述
  • 下面我们来看一下 折射定律 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的绝缘体的菲涅尔项数据
    正常情况为实线,角度与反射的情况
    (虚线为光的极化性质,光只沿着S或者P的方向振动的时候,一般不考虑)
    举个例子,在生活中,比如坐在大巴车上,我们看自己旁边的窗户,比较容易看到外面去,但是看着前后几排的窗户,可能只有反射
    在这里插入图片描述
  • 对于导体来说又是另一种菲涅尔项
    所以古代用铜镜和银镜,其实也是因为它们的反射率一直都挺高的
    并且先降再升的曲线也很神奇
    在这里插入图片描述
  • 我们要怎么样准确计算菲涅尔项呢
    有很复杂的公式,S和P是两个极化方向,平时我们把它们平均起来就好
    我们也有简化的公式,施利克近似—Schlick’s approximation
    在这里插入图片描述

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,不做细说
    在这里插入图片描述
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐