当我们在iPad上使用opengl 2.0和glEnable(GL_BLEND)绘制300个需要透明度和alpha混合的精灵时,我们得到了大约40帧的帧率。但是,当我们禁用混合时,我们得到了60帧的帧率。
现在,混合真的那么昂贵吗?还是我们做错了什么?
感谢您的时间, Richard。
这真的很昂贵。每个像素都需要进行读取-修改-写入操作。修改操作的形式如下:
fragment * alpha + previous * (1 - alpha)
计算你所涉及的像素数量,你很快就会意识到你需要进行大量的数学计算(并需要更多的内存带宽)。这完全取决于你的精灵有多大,但当你有大量的重叠时,减速是不足为奇的。