前言:
学习笔记,梳理了一下学习PBR的思路。让人比较容易理解的笔记吧。
谢谢谢谢谢谢!看完了之后会对BRDF那套公式有一些理解,至少能看懂。以及一个比较合理的学习思路。
PBR数学篇:
辐射率是啥,它和BRDF的关系?
反射率方程
BRDF怎么来的?(直接光+间接光部分)
辐射率是啥,它和BRDF的关系:
希望大家看到这个辐射率的时候不要晕,这里只是做一个铺垫,说明一下什么是辐射率,不会涉及到特别复杂的数学知识,主要弄懂这玩意干啥用的。
辐射率是单位面积、单位方向上光源的辐射通量,通常用L来表示,被认为是对单一光线的亮 度和颜色评估。
在渲染中,我们通常会基于表面的入射光线的入射辐射率Li来计算出射辐射率Lo,这个过程也往往被称为是着色(shading)过程。(总之我们把辐射率当成颜色理解就好)
而要得到出射辐射率Lo,我们需要知道物体表面一点是如何和光进行交互的。而这个过程就可以使用BRDF来定量分析。 (图中的f(l,v)代表BRDF)
大多数情况下,BRDF可以用f(l,v)来表示,其中l为入射方向和v为观察方向(双向的含义)。
这种情况下,绕着表面法线旋转入射方向或观察方向并不会影响BRDF的结果,这种BRDF被称为是各项同性 (isotropic)的BRDF。与之对应的则是各向异性(anisotropic)的 BRDF。
上面说了,BRDF的作用其实是用来定量分析的,那么我们怎么去理解这段话呢:
一个更直观的理解是,当一束光线沿着入射方向l到达表面某点时,f(l,v)表示了有多少部分的能量被反射到了观察方向v上。没错,就是观察方向所占权重。这样去理解就对了。
既然提到了反射率方程,那么我们就再来好好理解一下这个反射方程。
-----------------------------知识分割线-------------------------------
反射率方程介绍:
反射公式1:
这个就是我们上面所用到的一个公式:即给定观察视角 v,该方向上的出射辐射率Lo(v)等于所有入射方向的辐射率半球积分乘以它 的BRDF值f(l,v),再乘以一个余弦值(n·l)。
这里积分的理解:
我们把这些不同方向的光辐射率(Li(l )部分)乘以观察方向上所占的权重(f(l,v)部分),再 乘以它们在该表面的投影结果(n·l)部分),最后再把这些值加起来(即 做积分)就是最后的出射辐射率。
我们可以把这个公式写成下面这样:
不同方向的入射光在该观察方向上的权重分布(f(l,v)部分)*不同方向光辐射率(Li(l )部分)*表面投影结果(n·l)部分),最后把这些值加起来(即 做积分)。
反射公式2:
使用精确光源的最大的优点:
我们可以大大简化上面的反射等式。
和之前使用积分形式的原始反射等式相比:
上面的式子使用一个特定的BRDF值来代替积分操作,这大大简化了计算。
如果场景中包含了 多个精确光源