BSDF(光的散射)
BSDF包括BTDF和BRDF
对立体角的cos做半球的积分 = 2Π 因为一整个球的立体角是4派
因为我们知道在渲染方程中:BRDF决定了一个物体发生漫反射还是镜面反射等 所以我们把材质 = BRDF
因为正常的漫反射是:入射光线能量等于出射光线能量 所以BRDF = 1/Π
Glossy(类似于镜面反射 但更模糊些)
上图就是类似于镜面反射但是又比镜面反射更模糊 他会往一个方向反射 结果就是图中的 像打磨过的金属反射出来
计算出射角
入射向量 + 出射向量 = 2 * cos入射角 法线向量 = 2 * 入射向量 * 法线向量 * 法线向量
cos入射角 * 法线向量 = 中间的红线的值
入射向量 * 法线向量 = cos入射角
BSDF(折射)
该介质折射率 * sin入射角 = 另一个介质折射率 * sin出射角
全反射
当入射的折射率大于出射的折射率时 根号内是<0 的就说明是没办法折射的 所以发生全反射
Fresnel Term(菲尼尔项)
绝缘体的菲尼尔项(玻璃之类的)
导体的菲尼尔项(金属之类的)
图中横坐标是入射光线和法线的角度 竖坐标是发生反射的比例 (一般看红线 另外两条线是光线的极化现象 但是不怎么考虑)
如果入射光线越垂直于法线则反射的比例大
如果入射光线越平行于法线则反射的比例小
如图就是列子
如何计算菲尼尔项
上面那部分的是真正的计算菲尼尔项的式子 但是太过繁琐
所以有人就简化了一下 模拟了一个菲尼尔项出来 (计算机图形学上广泛运用的)
n1 n2是入射介质和出射介质的折射率
cos角是入射光线与法线的夹角
Microfacet Theory(微表面模型)
有些物体从远处看是粗糙的平面 而近处看他就是很多个凹凸不平的微表面(每一个小的微表面都可以看作镜面反射)
从远处看是材质 近处看几何体
我从近处看可以看到很多不同的小几何 而我把镜头拉远几何就会消失 变成材质
如果是上面的微表面 各个微表面的法线都有一个大致的朝向 在远处看就能看到Glossy的材质
而下面的微表面 各个微表面的法线都不太一样 分歧很大 在远处看就看成的是diffuse材质
微表面下的BRDF
f(i,h)是BRDF
1.BRDF是非负的
2.BRDF是可以线性相加的
3.BRDF是可逆的 也就是说把入射和反射向量交换一下 结果是完全一样的
4.BRDF绝对不会让能量变多
5.BRDF中
F(i,h)是菲尼尔项(决定了物体不同程度的反射)
D(i,o,h)是微表面的法线分布(决定了各个表面的法线)
目前还没有很是理解这里 视频里面说(17课50分20秒)
就是法线分布决定了每个微表面的法线的值 说入射光线和出射光线是给定的 那我能理解的入射光线和出射光线给定是说整个从远处看大表面的入射和出射光线 然后算这两个的半程向量 如果微表面的法线向量和半程向量相同方向 则这个微表面能反射光线(因为认为微表面都是镜子)
G(h)是几何项(决定互相遮挡的问题)
如果光横着过来就会发生微表面遮挡微表面的问题
Isotropic(各项同性材质)
我们认为他的微表面并不存在一定的方向性 或者方向性很弱