GM 着色器嘉宾:辐射级联

主要观点:介绍了辐射级联(Radiance Cascades)这一用于 2D 和 3D 全局照明的新方法,由 Grinding Gear Games 的高级图形程序员 Alexander Sannikov 创造。它通过特殊方式投射有限数量的光线来模拟无限数量的方向,能有效避免噪声,效果自然,包含线性和角度分辨率等概念,各层级联(cascade)有不同数量的探针和光线,通过优化布局和射线步进(raymarching)来实现全局照明,最后将级联合并生成最终的辐射场。
关键信息

  • 辐射级联通过先少量短射线后增加射线数量和降低细节级别来模拟自然光照和阴影。
  • 利用线性和角度分辨率的反比关系,减少射线投射的空间精度。
  • 级联有特定的内存布局,各层级联的探针和光线数量按比例变化,且总射线数恒定。
  • 通过射线步进计算射线索引、角度和长度,满足线性分辨率要求。
  • 合并级联时,从高角度分辨率级联开始,找到匹配的探针和光线并进行插值融合,同时考虑射线可见性。
  • 最终生成与级联 0 探针数量相等的渲染目标作为辐射场的 mipmap,通过硬件插值缩放后实现每像素全局照明。
    重要细节
  • 以半平面遮光为例说明阴影的锐度和模糊度变化,以及线性和角度分辨率的关系。
  • 介绍了 tmpvar 的游乐场和 Shadertoy 示例用于可视化和交互演示。
  • 提及了一些缺失的内容,如 skybox 积分及其他可应用场景,如重力模拟、3D 屏幕空间全局照明、通过高粘度流体实现体积效果等。
阅读 12
0 条评论