主要观点:介绍了通过逐步构建实现实时全局光照的方法,包括绘制可绘制表面、射线 marching、跳跃洪水算法、距离场等,还详细说明了各种效果的实现方式如模拟室外场景、沙粒效果、时间累积等,并提及相关后续内容Radiance Cascades。
关键信息:
- 用 three.js 从 scratch 构建代码,包含多种交互功能如调整太阳等。
- 全局光照模拟光与表面的交互,历史上需强大硬件等,现有 Radiance Cascades 技术。
- 绘制可绘制表面通过 SDF 线段在 GPU 上实现,用距离函数描述线宽。
- 射线 marching 核心是通过在场景中发射射线并平均颜色来确定光照,需避免重复工作。
- 跳跃洪水算法通过重复纹理获取距离场,提高射线 marching 效率。
- 实现各种效果如模拟室外场景需记录碰撞、添加太阳天空光等。
重要细节: - 定义了边界检查函数
outOfBounds
。 - 在射线 marching 中计算射线方向、步长等,根据碰撞情况收集辐射。
- 跳跃洪水算法中通过重复纹理和计算距离获取距离场。
- 实现各种效果的具体代码和逻辑,如模拟室外场景的
sunAndSky
函数等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。