与 CPU 渲染相比,GPU 实例化可带来巨大的性能提升。如果希望粒子系统渲染__网格 (Mesh)__ 粒子(而不是使用渲染__公告牌__粒子的默认渲染模式),则可使用实例化功能。
为了能够对粒子系统使用 GPU 实例化,请执行以下操作:
要为粒子系统启用 GPU 实例化,必须在粒子系统的__渲染器 (Renderer)__ 模块中启用__启用 GPU 实例化 (Enable GPU Instancing)__ 复选框。
Unity 带有一个支持 GPU 实例化的内置粒子着色器,但默认的粒子材质不使用该着色器,因此必须更改此设置以使用 GPU 实例化。支持 GPU 实例化的粒子着色器名为__粒子/标准平面 (Particles/Standard Surface)。要使用它,必须创建自己的新__材质__,并将材质的着色器设置为__粒子/标准平面 (Particles/Standard Surface)。然后,必须将此新材质分配给粒子系统渲染器模块中的材质字段。
如果要为粒子使用其他不同的着色器,必须使用“#pragma 目标 4.5”或更高版本。有关更多详细信息,请参阅着色器编译目标 (Shader Compile Targets)。此要求高于 Unity 中的常规 GPU 实例化,因为粒子系统将其所有实例数据写入单个大缓冲区,而不是将实例化分解为多个绘制调用。
也可以编写使用 GPU 实例化的自定义着色器。有关更多信息,请参阅以下部分: