Particle做为游戏表现的一大手段,对整个画面的提升有很大的作用,Particle越多让玩家觉得场景越丰富,但是随之而来的是对性能的严重吞噬,如果提升Particle是一个大的Title,这里介绍一下在不损失质量的前提下如果大幅降低像素填充的方法。
大多的Particle都是用AlphaBlend的方法进行绘制的,这意味着Particle本身面片的Z不会像不透明物体那样会有depth test来帮助Cull掉不必要的像素,因为Particle是透明的无法用Depth Cull掉OverDraw的像素。像素填充往往是Particle的一大瓶颈,仔细观察这些贴图会发现,贴图里的很多像素没有任何贡献,也就是说AlphaBlend的时候贴图的alpha是黑的,对最后画面没有任何贡献。
那么如何才能把这些像素给优化掉么?Humus在他的Blog里给处理具体方法并将其命名为"Particle Trimming",Humus的方法非常直截了当,Offline的分析Particle贴图的Alphat通道,通过增加顶点的方法来减少像素的数目(如下图),从下面的数据可以看出,居然最后可以节省一半的像素填充,这是极好的:)
Original: 100%
Aligned rect: 69.23%
Optimized 3 verts: 70.66%
Optimized 4 verts: 60.16%
Optimized 5 verts: 55.60%
Optimized 6 verts: 53.94%
Optimized 7 verts: 52.31%
Optimized 8 verts: 51.90%
详细信息可以参考Humus的原始链接