跳到主要内容

高斯泼溅渲染架构

PlayCanvas 通过共享管线,将所有 GSplat 组件单元统一排序,保证整个场景正确顺序,并支持程序化数据、流式 SOG 和 GPU 处理。

全局排序​

所有组件参与一次全局排序,而不是组件内部排序后再按包围盒排列组件。这可避免:

  • 组件重叠的可见性伪影。
  • 相机移动、组件顺序变化时的跳变。
  • 不同组件间的错误深度顺序。

架构概览​

管线包含数据存储和操作:

GSplat 资源​

源数据有两类:

  1. 文件加载:PLY、SOG 或流式 SOG。
  2. 程序化:通过 GSplatContainer 创建。

各资源按数据格式存入 GPU 纹理。

工作缓冲区​

为每个渲染 GSplat 的相机/图层组合自动创建,作为中间存储:

  1. 复制可见组件全部数据。
  2. 按相机深度全局排序。
  3. 准备排序后的数据以渲染。

这让需要统一访问全部单元的全局排序、跨组件效果成为可能。

相机渲染​

相机渲染包含 GSplat 的图层时,从工作缓冲区绘制排序数据,无论组件数量和重叠方式如何,都保持正确顺序。

实时示例​

Global Sorting 演示多个重叠组件如何通过统一排序消除伪影。

全局排序示例

优点​

  • 画质更好:消除重叠组件伪影。
  • 渲染一致:不受相机位置影响,保持正确深度。
  • 更复杂组合:支持大量组件。
  • 高级功能:程序化、流式 SOG 和 GPU 处理。

高级功能​

以下功能建立在此管线上:

另请参见​