# Real-Time Physically-Based Materials

![image-20230324170200989](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241702118.png)

在保证速度的时候尽可能提升质量，很多地方不是基于物理了

### 微表面模型

基于迪士尼标准的 BRDF

在表面、体积上定义着色

* ![image-20230324170623503](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241706671.png)

![image-20230324170931959](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241709078.png)F

### Fresnel Term

![image-20230324171107636](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241711710.png)

非金属和金属

![image-20230324171136670](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241711726.png) ![image-20230324171149862](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241711922.png)

近似公式

![image-20230324171301831](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241713936.png)

### 微表面法线分布

![image-20230324171428487](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241714553.png)

法线分布常用函数

![image-20230324171604151](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241716242.png)

半球数据可视化，也就是 Projected Solid Angle

从高斯分布变化而来，各向同性

![image-20230324172204915](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241722973.png)

在 tanθ 代表的切平面（坡度空间，而不是球面空间）上定义了的高斯函数，表示在看向某个像素点时，半程向量是 h 的概率

分母是为了在 ProjectedSolidAngle 上积分为 1

### GGX

也叫做 Trowbridge-Reitz ，长尾

![image-20230324193615594](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241936682.png)

可以有光晕的现象

![image-20220309193351292](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241937887.png)

高光的过度比较柔和，GGX 效果比 Beckmann 好

## Shadowing Masking Term

自遮挡问题

![image-20230324194455581](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241944630.png)

没有 G 项的话，球的边缘会非常亮，不符合物理的事实

![image-20230324194636877](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241946945.png)

视线或入射光线和法线夹角 90° 会产生剧烈的遮挡现象

![image-20230324194831573](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241948619.png)

### 能量损失

* shadowing masking 会导致能量损失
* 使用白炉测试，可以看到颜色与周围不一致，变暗
* 白炉测试，各个方向入射光强度一致
* 微表面粗糙，只考虑一次 bounce 导致光线被挡住

![image-20220309193536509](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303241957524.png)

### the kulla-conty Approximation

* 经验性的方法，补全粗糙微表面因为多次弹射造成的能量损失
* 希望设计一个 BRDF 积分起来能弥补能量损失
* 计算公式过于复杂，所以预先计算好
* 物体表面有颜色，颜色意味着能量的吸收
* 递归考虑所有反射的可能性

![image-20230324200259494](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303242002538.png)

![image-20230324200359831](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303242003872.png)

* 使用预计算打表的方式，记录特定视线方向对于特定粗糙度的 BRDF 模型的 Eavg，
* 使用 Eavg 计算 1 - E(uo)， 即能量补偿

![image-20230324201411225](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303242014284.png)

颜色意味着能量的吸收，也就是能量损失

菲涅尔项也有能量损失

![image-20230324202227133](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303242022178.png)

Eavg 是实际出 BRDF 的能量

![image-20230324202434293](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303242024338.png)

微表面模型 + Diffuse 是错误的

![image-20230324203046595](https://image-1253155090.cos.ap-nanjing.myqcloud.com/202303242030675.png)
