1

我正在使用 FBO 对非常大的输出图像进行屏幕外平铺渲染。为了获得最佳性能,我正在尝试创建尽可能大的 FBO(以及瓦片大小)。为此,我使用 GL_MAX_RENDERBUFFER_SIZE_EXT 来检索最大可能大小,然后减小它,以便我的 FBO 不会填充超过可用 VRAM 的 1/16。

这样做似乎可以确保我的渲染器永远不会因内存不足或不完整的 FBO 错误而失败;但是,对于足够大的 FBO(在一个简单的测试用例中为 2002x1202),我有时会得到一个奇怪的结果。在我的 Quadro 8600M 和另一台 Quadro FX 1700 上,我会看到扫描线带,其中要么没有渲染,要么渲染了错误颜色的几个像素。如果我将 FBO 的大小限制为较小的值,例如 500x500,则不会发生这种情况。

这会为任何人敲响警钟吗?我有点难过。

(我使用的是 Windows XP Professional SP3)

4

1 回答 1

0

听起来像一个驱动程序“错误”。

如果可能的话,我会尝试在其他硬件(ATI)上重现。还可以在 Quadro 硬件上尝试不同的驱动程序版本。

还要检查你的 GL 错误代码,或者运行glDebugger 之类的东西。

于 2009-07-28T00:16:03.457 回答