实现与顺序无关的透明度

主要观点:

  • 介绍实现独立于顺序的透明度(OIT)的方法及相关概念,包括部分覆盖和传输等。
  • 探讨多种实现 OIT 的方式及其优缺点,如光线追踪透明度、每像素列表等,重点介绍作者采用的基于小波变换的方法。
  • 详细阐述生成透射率、深度边界、遮蔽不透明层等各个步骤及相关代码实现。
  • 提及避免自遮挡、动态秩选择等优化技巧,以及性能相关的内容。

关键信息:

  • OIT 可避免传统基于深度排序渲染透明物体的问题,实现任意顺序渲染且可能提高性能。
  • 部分覆盖和传输是光通过表面的两种方式,传统实时渲染多建模部分覆盖。
  • 作者采用基于 Haar 小波的 Wavelet Transparency 方法生成透射率函数。
  • 多个渲染步骤如生成深度边界、透射率等,以及在不同阶段的处理和优化。

重要细节:

  • 光线追踪透明度虽易读但 shade(ray) 调用负担重,每像素列表可任意顺序渲染但列表可能很大。
  • 生成透射率时使用特定格式存储系数,通过加法实现顺序无关性,解决 R9G9B9E5 不能作为渲染目标的问题。
  • 可通过写入深度缓冲区避免不必要的渲染,利用生成的透射率进行多种优化,如避免遮蔽不透明层等。
  • 动态秩选择可根据场景复杂度选择合适的小波秩以节省资源,性能受多种因素影响如顶点工作等。
阅读 68
0 条评论