构建实时全局照明:第 1 部分

主要观点:介绍了通过逐步构建实现实时全局光照的方法,包括绘制可绘制表面、射线 marching、跳跃洪水算法、距离场等,还详细说明了各种效果的实现方式如模拟室外场景、沙粒效果、时间累积等,并提及相关后续内容Radiance Cascades
关键信息

  • 用 three.js 从 scratch 构建代码,包含多种交互功能如调整太阳等。
  • 全局光照模拟光与表面的交互,历史上需强大硬件等,现有 Radiance Cascades 技术。
  • 绘制可绘制表面通过 SDF 线段在 GPU 上实现,用距离函数描述线宽。
  • 射线 marching 核心是通过在场景中发射射线并平均颜色来确定光照,需避免重复工作。
  • 跳跃洪水算法通过重复纹理获取距离场,提高射线 marching 效率。
  • 实现各种效果如模拟室外场景需记录碰撞、添加太阳天空光等。
    重要细节
  • 定义了边界检查函数outOfBounds
  • 在射线 marching 中计算射线方向、步长等,根据碰撞情况收集辐射。
  • 跳跃洪水算法中通过重复纹理和计算距离获取距离场。
  • 实现各种效果的具体代码和逻辑,如模拟室外场景的sunAndSky函数等。
阅读 11
0 条评论