由于混合会影响我们游戏的性能,因此我们尝试了几种混合策略来创造混合的“幻觉”。其中之一是每隔奇数帧绘制一个精灵,导致精灵有一半的时间是可见的。效果倒是不错。(顺便说一下,您需要适当的帧速率,否则您的精灵会明显闪烁)
尽管如此,我想知道在避免混合方面是否有任何好的见解,以便在不影响(太多)视觉体验的情况下改善整体性能。
由于混合会影响我们游戏的性能,因此我们尝试了几种混合策略来创造混合的“幻觉”。其中之一是每隔奇数帧绘制一个精灵,导致精灵有一半的时间是可见的。效果倒是不错。(顺便说一下,您需要适当的帧速率,否则您的精灵会明显闪烁)
尽管如此,我想知道在避免混合方面是否有任何好的见解,以便在不影响(太多)视觉体验的情况下改善整体性能。
是实际的混合影响了你的表现吗?(即显存带宽)
这些天来,游戏通常会做什么来处理大量 alpha 混合的东西(想想覆盖整个屏幕的大爆炸):将它们渲染成更小的纹理(例如比屏幕小 2x2 或 4x4),然后将它们合成回主屏幕。
这样做可能还需要将不透明表面的深度缓冲区渲染到较小的纹理中,以正确处理与不透明几何体的交叉点。在某些平台(控制台)上,进行多重采样或深度缓冲区黑客操作可能会使这成为一项非常便宜的操作;虽然在普通 PC 上没有这样的运气。
参见 GPU Gems 3 中的文章,例如:High-Speed, Off-Screen Particles。Christer Ericson 的博客文章也概述了许多优化方法:优化粒子系统的渲染
这里是关于快速渲染粒子系统的优秀文章。它涵盖了较小的屏幕外缓冲区技术,并提出了许多其他方法。
你可以在这里阅读
从您的问题中不清楚哪种混合应用会影响您的游戏性能。一般来说,混合速度非常快。如果您的问题与粒子系统相关,那么最有可能影响帧率的是绘制的粒子的数量和大小。特别是大量的近距离(因此是大)粒子将需要高内存带宽和显卡的填充率。我自己实现了一个粒子系统,虽然我可以在远处渲染大量粒子,但我在较弱的硬件上感受到了负面影响,例如在烟雾中飞行(这将填满整个屏幕,因为观众在其中) .