网格发射数超过5的粒子系统

关于粒子系统的定义,我们在此不再赘述。我们重点来看一下粒子系统的渲染模式。

粒子的渲染模式可分为两大类:2D的Billboard(公告牌)图形模式和Mesh模式。Billboard是3D游戏中用的非常多的一种技术,使用该模式,粒子会以一个平面的形式存在,并始终以一定的角度对着我们的镜头。举个例子来讲,场景中有一棵树,是实体存在的;但在各种Billboard模式下,你只需要看到这棵树的一个“面”。在展示效果上表现其实一样,但渲染一个“面”和渲染一整个实体,前者在消耗的内存和运算量上会更有优势。

Billboard模式,粒子会始终面向摄像机;

Stretched Billboard模式下,粒子在面向摄像机的同时,会在速度的方向上进行拉伸,可以设置粒子的各种缩放和拉伸效果;

Horizontal Billboard模式下,粒子平面会和XZ面平行;

Vertical Billboard模式下,粒子平面在面向摄像机的同时,会在Y轴方向上直立(垂直于XZ平面);

而“Mesh”模式就是我们今天的主题。这个模式允许粒子系统发射3D网格而非2D的Billboard,以此来实现更为复杂和贴合需求的粒子效果。

3D网格性能开销显然是高于2D的Billboard的。如果粒子系统的发射的网格数量过大,会带来较高的CPU计算开销、GPU渲染压力甚至较高的堆内存分配。所以我们对使用Mesh进行渲染的粒子系统的“最大粒子数”要求更为严苛。一般的粒子系统中,粒子发射数上限建议不超过30(我们在之前的文章中有进行讨论,详见《【性能黑榜】掌握了这些规则,你已经战胜了80%的对手!》)。经由UWA的测试结果表明:渲染模式为Mesh、网格发射数在不超过5的情况下,能够维持粒子效果和性能消耗上的一个相对平衡。

所以开发团队在本条规则执行后,需要对筛选出来的粒子系统进行显示效果和性能消耗上的平衡考量,并对相应的粒子系统进行修改。