Version: Unity 6.0 (6000.0)
语言 : 中文
粒子系统优化
表面着色器中的粒子系统 GPU 实例化示例

为粒子系统 (Particle System) 应用 GPU 实例化

与 CPU 渲染相比,GPU 实例化可带来巨大的性能提升。如果希望粒子系统渲染__网格 (Mesh)__ 粒子(而不是使用渲染__公告牌__粒子的默认渲染模式),则可使用实例化功能。

为了能够对粒子系统使用 GPU 实例化,请执行以下操作:

  • 将粒子系统的渲染器模式设置为__网格 (Mesh)__

  • 对支持 GPU 实例化的渲染器材质使用一个着色器

  • 在支持 GPU 实例化的平台上运行项目

要为粒子系统启用 GPU 实例化,必须在粒子系统的__渲染器 (Renderer)__ 模块中启用__启用 GPU 实例化 (Enable GPU Instancing)__ 复选框。

在渲染器 (Renderer) 模块中启用粒子系统 GPU 实例化的选项
在渲染器 (Renderer) 模块中启用粒子系统 GPU 实例化的选项

Unity 带有一个支持 GPU 实例化的内置粒子着色器,但默认的粒子材质不使用该着色器,因此必须更改此设置以使用 GPU 实例化。支持 GPU 实例化的粒子着色器名为__粒子/标准平面 (Particles/Standard Surface)。要使用它,必须创建自己的新__材质__,并将材质的着色器设置为__粒子/标准平面 (Particles/Standard Surface)。然后,必须将此新材质分配给粒子系统渲染器模块中的材质字段。

与粒子系统 GPU 实例化兼容的内置着色器
与粒子系统 GPU 实例化兼容的内置着色器

如果要为粒子使用其他不同的着色器,必须使用“#pragma 目标 4.5”或更高版本。有关更多详细信息,请参阅着色器编译目标 (Shader Compile Targets)。此要求高于 Unity 中的常规 GPU 实例化,因为粒子系统将其所有实例数据写入单个大缓冲区,而不是将实例化分解为多个绘制调用。

自定义着色器示例

也可以编写使用 GPU 实例化的自定义着色器。有关更多信息,请参阅以下部分:

粒子系统优化
表面着色器中的粒子系统 GPU 实例化示例