- 1 渲染方程
- 1 挑战1:shadow(光源的可见性)
- 2 积分怎么做?
- 3 任何点都可能是光源
- 2 simple
- 1 简单光源
- 2 环境贴图
- 3 材质
- 3 shadow
- 4 基本的着色解决方案
- 3 AAA Quality
- 1 预计算全局光照
- 1 为啥全局光照是非常重要的?
- 2 傅里叶变换
- 3 球面谐波函数
- 4 光照贴图LightMap,GI
- 5 Light probe
- 6 材质
- 1 DFG:D:normal 分布
- 2 BRDF Dinesy 信条
- 3 PBR
- 7 IBL
- 8 shadow
- 4 总结
- 5 未来的发展
lighting,material,Shader,
35年前有了这个;
真实渲染是很复杂的:
阴影想做的好是非常难的,visibility to lights;
光源是很复杂的:
平行光源,点光源是很正常的,但是面光源是比较复杂的
Radiance:辐射度
Inradiance:
场景中可能有很多个光源,可能会无限递归下去!
ray tracying:
是符合渲染方程的。
经验派:
Blinn-Phone materail 模型
用到了光可以添加原理。
问题是:
1.能量是不守恒的
能量保守,出射能量一定要小于等于入射能量
2.很难表达复杂的真实材质
到光的可见性,从光的视角
Shadow map的问题:
自遮挡的问题
刺客信条:
5-10年前的技术
空间换时间
空间域转变成频域
烘焙
好处:
实时做的很好
离线的
缺点:
预计算时间很长。
只能处理静态的物体和静态的光。
lightmap的方法可能会慢慢的退出。
游戏的场景参数化到二维的texture上,很多计算就不需要做了。
光场:
反射probe:
这两种集合到一起:可以出现不错的GI效果
现在的计算机可以实时更新Light Probes,不会每一帧才去更新,找空的一帧去更新。
缺点:比不上lightmap。
ggx
D:
G:
F:
物理材质测量:
尽量少的参数:
所有的参数范围最好是0-1;
参数随便你怎么调,他的所有组合都是有意义的。
引擎是个工具,
归一化是很重要的!
几乎不需要设置任何参数,进行的是像素级的控制!
MetallicRoughnees:
metalic:
灵活度下降,但是不会出问题:用MR,用SR少一点。
MR存在下面的问题!
近似解!
IBL:光照的方法,和PBR是孪生兄弟一样
现在用的基本都是Cascade Shadow
不同的层级之间要做插值!
存储大!
shadow是最耗时的,但是确保光的可见性是正确的。
shadow很难做到2ms一下。
做4次的裁剪,
喜欢做软阴影。
PCF 软
PCSS是标配!
5年前的3A
PBR+IBL:材质光照
Cascade shadow+ VSSM.
实时光锥:
密切的关注实时全局光照
新的方向:Vitual texture,巨大的纹理,能够解决cas shadow的存储不够的问题。
有很多个shader
GPU很讨厌shader
7万多个shader
跨平台的编译。
GI未来会怎么发展:GI 5年左右上来就是GI。
端云协同



