2010-02-28 36 views
0

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

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

是否有可能让GL滚动帧缓冲区,或者我应该让 重新分配给双缓冲区并为每个帧重新渲染整个场景 ?

THX

回答

0

我不知道你将如何得到解决,起码,做一个全屏矩形与纹理渲染每一帧(当它实际上滚动)。我目前还没有看到能够在图形卡上移动帧缓冲区指针。

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

+0

thx。目标是避免双缓冲。 – drudru 2010-04-04 20:03:41