cascade shadow
GAMES101 Advanced Tops in Rendering
cascade shadow
- 如何确定各个cascade的camera位置
- 找到每个cascade对应的frustum的八个corner
- 根据8个corner计算frustum的center位置
- 计算以center为球心,frustum的外接球radius
- 确定对应camera的位置
center + light_dir * radius
正交投影,投影window的长宽分别为 2 * radius
- 如何优化性能
场景里的静态物数量很多,尤其是第四层,一方面是CPU端culling很费,另一方面GPU端draw call数目很多。目前做了一些小的降低draw call的措施:- 第四层静态物只绘制超过一定体积的物体
- 第四层动态物使用bounding sphere和instance的做法来绘制阴影
- 第四层每隔8帧绘制一次
这里要注意depth map的clear时间以及计算shadow传入的camera
- GPU driven rendering可以解决shadow draw call多的问题么
GAMES101 Advanced Tops in Rendering
Advanced Light Transport
- Unbiased (无论样本多少,期望值等于真实值)
- bidirectional path tracing (BDPT), 有时间实现一把
- Metropolis light transport (MLT)
- Biased but consistent (样本数量无穷大,期望值会收敛到真实值)
- photon mapping
- vertex connection and merging
- instant radiosity (VPL)
Advanced Appearance Modeling
- Non-surface models
- participating media
- hair/fur/fiber (BCSDF)
- granular material
- surface model
- translucent material (BSSRDF)
- detailed material
- wave optics (波动光学)
- procedural appearance
不真正生成贴图,要用的时候直接计算