我想用一个具体定制算法产生mipmaps对于一些可渲染的纹理(R16F&RGBA16F).

所需的所有纹理'mipmaps预启用了可通过使用glGenerateMipmapEXT().

最大的问题迄今呈现为1+mip映射的水平。更确切地说, 这就像一个魅力:

...
glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, target, texType, texId, 0 );
checkFBOStatus();
...
render();

但这给了我一个GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT当检查固定运营基地状态

...
glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, target, texType, texId, 1 );
checkFBOStatus();
...
render();

所有的差别代码是lod水平的参数,用于将纹理上的固定运营基地.

经过大量的狂热的头刮我仍然不能得到它的工作。因此,任何答案是极大的赞赏。

[注:目标平台照片2.x与固定运营基地扩展]

有帮助吗?

解决方案

问题解决了


原因的固定运营基地的不完全是由于纹理的一致性。当使用glGenerateMipmapEXT/glGenerateMipmap,u必须确保你的纹理的基本水平包含 有效的数据;否则,这一呼吁失败时,没有任何错误通知。

这里有两种可能的解决方案的参考:

  1. 使用TexImage或TexSubImage到 fillup你可渲染的纹理 前glGenerateMipmap

  2. 将可渲染的纹理 伪固定运营基地之前glGenerateMipmap

无论哪种方式的工作(上测试GF8,GF9) 不过测试,在阿提卡。

这会是伟大的,如果任何人都可以测试它在阿Gpu。

PS。请让我知道如果你有问题使用这些解决方案。

其他提示

哇,我有上的ATI Radeon 9800同样的问题。 但我与gltexImage2D的呼叫。

渲染到第一电平是可能的,但不是其他人。也许我应该尝试虚拟FBO方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top