处理 OpenGL 中的 alpha 混合以获得更好的性能

Kri*_*iem 3 opengl graphics performance alphablending

由于混合会影响我们游戏的性能,因此我们尝试了几种混合策略来创建混合的“幻觉”。其中之一是每隔奇数帧绘制一个精灵,导致精灵有一半的时间可见。效果还是不错的。(顺便说一句,你需要一个合适的帧速率,否则你的精灵会明显闪烁)

尽管如此,我想知道是否有任何好的见解可以避免混合,以便在不影响(太多)视觉体验的情况下提高整体性能。

NeA*_*RAZ 6

是实际的混合影响了你的表现吗?(即显存带宽)

如今,游戏通常会处理大量 alpha 混合内容(想想覆盖整个屏幕的大爆炸):将它们渲染成更小的纹理(例如比屏幕小 2x2 或 4x4),然后将它们合成回主屏幕。

这样做可能需要将不透明表面的深度缓冲区渲染到较小的纹理中,以正确处理与不透明几何体的相交。在某些平台(控制台)上,进行多重采样或深度缓冲区黑客攻击可能会使操作变得非常便宜;但在普通 PC 上就没有这样的运气了。

例如,请参阅 GPU Gems 3 的文章:高速、离屏粒子。Christer Ericson 的博客文章也概述了许多优化方法:优化粒子系统的渲染