1

我使用 OpenGL 作为 2D 平铺引擎的底端。当一切都是 2D 时,优化某些问题很简单。例如,滚动。如果我知道屏幕的某个部分需要滚动到底部,那么我就可以在该部分上快速移动。我晚上一次移动超过 1 个像素。如果没有明确的硬件支持(想想旧的任天堂硬件),这需要大量的像素写入。片上 bitblt 将是下一个最好的东西。

本质上,我正在研究如何优化我的 GL 调用以使用 VRAM 纹理渲染作为高效的硬件 blit。

是否可以让 GL 滚动帧缓冲区,或者我应该让自己接受双缓冲并为每一帧重新渲染整个场景?

谢谢

4

1 回答 1

0

我不知道您将如何解决,至少,每帧都使用纹理进行全屏矩形渲染(当它实际滚动时)。我已经有一段时间没有看到在显卡上移动帧缓冲区指针的能力了。

但是,您可以限制每帧需要渲染多少场景。如果将滚动场景保留为纹理,则可以绑定到屏幕外帧缓冲区并在其无效部分上进行渲染。然后,您只需使用 UV 操作来完成最终的全屏矩形 blit。

于 2010-03-17T15:36:49.447 回答