第八章材质着色与光照 学习打卡
这章老师讲的嘴速有点快…后续补充
物理回顾
什么是渲染
- 平衡物理和有限计算资源的艺术
- 基于物理渲染(材质+光照)=光与物质的交互
- 电影的画面:离线渲染
- 基物流渲染:PBR(光照基于更精确的物理模型进行渲染)
- 产生波的特性同时体现出粒子的特性
材质
光与粒子交互
- 粒子产生极化的现象,电子吸收光一部分的能量,原子内部的电子从低能态跃迁到高能态,对某些频率的可见光进行吸收,看到红色物体,是因为物体把除红色以外别的波长吸收掉,只剩下红色去反射人的眼睛
- 光通量:每单位时间内产生的光能
- 光度:
- 光亮度
- 通过实验仪器测量菲涅尔反射的系数:一个通用的现象,大部分金属的值是大于0.5的,非金属大部分是小于0.5的
全局光照
-
方法
-
离线渲染
- 路径追踪
- 暴力的方法,真实的通过算力计算游戏场景中,每条光路的一个反弹结果,一般起始点会从相机出发,发射射线到场景中,通过BRDF概率函数计算每一次反弹出射的方向,后再在场景另一个方向进行反弹,不断地反弹,如果没有打到光源地话,这条射线的贡献完全是黑的,一般在最后一次反弹的时候,强行把它跟光源连接起来,然后要看是否有物体挡到,如果有物体的话,就变成有阴影,没有挡到的话就会有计算光源的贡献
- 光子映射Photo Mapping
- 路径跟踪不会存储任何信息,但光子映射会在每次反弹的时候,把能量存储起来,从光源点一直往场景内发射光子,然后让这个场景的一个结构,把每一次反弹的结果保存起来,之后相机在收集阶段时观察这个场景时,对这些结果进行插值,光子映射和路径跟踪效果上在本质上可以做到一致
- 辐射度
- 路径追踪
-
实时渲染
-
屏幕空间
-
屏幕环境光遮蔽
- Cryengine 的Screen space ambient occlusion(SSAO)
- HBAO+(用屏幕空间去模拟一个AO的现象)
-
屏幕空间反射
- HI-Z Tracing(寒霜引擎)
- Min-Z Pass,战地系列、星战系列
- PBR brdf-Stochastic Monte Carlo sampling采样方法+denoise(降噪)
- HI-Z Tracing(寒霜引擎)
-
-
世界空间
-
Voxel Cone Tracing
-
Distance Field
-
实时光线追踪
- 计算光线和几何体的求焦
-
间接光照
-
环境法线(Bent Normal)
-
面光源(熔浆自带的光源)
-
Indirect Shadow
-
环境光遮蔽
-
GGX法线分布函数
-
-
-
存储
- 光照贴图
- 反射探针
- 漫反射
- 高光反射
F是菲涅尔效应
局部光照
点光源
基于图像光照
- Light probe