Games104第5节记录
光照,材质,着色
光照
第一个挑战
多样的光
复杂的光照信息
第二个挑战
半球光照和散射信息收集的困难
第三个挑战
任何物体会变成光源
从简单开始
简单的光照解决方案
结果 = 环境光 + 单一光照
环境反射贴图
结果 = 主要光 + 环境光 +环境贴图
Phong光照模型缺陷
能量不守恒
Phone光照模型会有点像塑料
Shadow
shadow map
问题
基础着色解决方案
3A质量
预先计算全局照明
直接光照加间接光照
傅里叶变化
能够提高卷积的效率
SH(球面谐波)
球面谐函数,一个数学系统,类似于傅里叶变换,但定义在球面上。SH函数通常是在虚数上定义的
将低频表示出来,一阶就够了
光照贴图优化
UV Atlas
Lighting
Lightmap
优点
运行时非常高效在环境上烘烤Gl的很多细节
缺点
长时间和昂贵的预计算(灯光地图农场)只能处理静态场景和静态灯光封装和GPU的存储成本
光照探针
光照点生成
尽量自动生成
反射探针
高质量立体贴图
光探头+反射探头混合
优点
运行时非常高效可以应用于静态和动态对象吗处理漫反射和镜面阴影
缺点
一堆SH光探测器需要预先计算不能处理gl的细节,比如重叠结构上的软阴影
PBR
微平面理论
BRDF
DFG
D
G
F
迪士尼
Dinesy原则
BRDF执行模型时应遵循的原则:
•应使用直观而非物理参数
•参数越少越好
•参数应该在合理范围内为0到1
•应该允许参数超出其合理范围
•所有参数的组合应该尽可能地稳健和合理
迪士尼材质参数
PBR镜面光泽
非金属尽量不使用菲涅尔,金属用菲涅尔
MR会有白边
《大世界》和《阶梯阴影》
将截锥分割成多个截锥
为每个子截锥渲染阴影地图
然后像素着色器从最接近所需分辨率的地图中采样
级联层之间的混合1. 在级联重叠的地方可以看到可见的接缝2. 级联层之间,因为分辨率不匹配。3.然后着色器根据像素在混合带中的位置在这两个值之间线性插值。
Cascade Shadow的利弊
优点
最好的方法与普遍的阴影错误
:透视混叠快速生成深度图,3倍时,深度写入只能提供相当好的结果
缺点
几乎不可能产生高质量的区域阴影没有颜色的阴影。半透明的表面投射不透明的阴影
GPU的快速发展.
更灵活的新着色器模型计算着色器网状材质.Ray-tracying材质
高性能并行架构翘曲或波浪结构
完全开放的图形API.DirectX 12和Vulkan
实时光追
实时全局光照
更复杂的材质模型
虚拟阴影图
shader管理
优步着色器和变体