【发布时间】:2010-12-06 02:32:16
【问题描述】:
我和我的朋友正在尝试使用 OpenGL 加速 2D 游戏。视频芯片组是 Radeon X1250,它似乎功率不足,可以显示高达 80 1366x768 全帧/秒。鉴于我们在彼此之上绘制了许多 sprite,性能在我们的目标 60 FPS 下急剧下降。您能否提供使用 OpenGL 快速渲染 2D 的优化技巧?
编辑:一些澄清: 在 Linux 下使用 C++ 进行开发。我们使用 SDL 完成了它,但性能并不令人满意,因此我们决定切换到 OpenGL,它被证明要快得多,当然,随后推动实现更多功能,要求我们每帧重绘整个屏幕。
我们的测试程序在 1366x768 屏幕上呈现带纹理的 256x256 四边形图块。如果在缓冲区交换之前铺设单层瓷砖,则会产生 80 FPS,如果铺设两层,则帧率会下降到 60 FPS 以下。考虑到开发板需要同时解码和渲染一些小的 MPEG,这可能无法令人满意。
我只是认为我可以寻找由于游戏是 2D 的事实而产生的优化 - 我想到了,例如: 1) 如果可以禁用纹理缩放。 2) 直接渲染到帧缓冲区(尽管我们听说 glDrawPixels 应该很慢。
【问题讨论】:
-
能否提供一些代码?
-
如果你写下你在谈论多少精灵会有所帮助。是多少 100、1000、10000?那么可能更容易说出您是否做错了什么或如何优化。
标签: performance optimization opengl 2d