OpenGL渲染到纹理 - 调整大小rtt纹理

时间:2014-04-28 12:36:06

标签: c++ opengl opengl-es-2.0

我只是把头发拉出来找不到提示:我的应用程序在需要时通过glTexImage2d以新的纹理分辨率调整其RTT纹理。

当它升级时看起来都很好。缩小尺寸时,看起来[1.0; 1.0]的TexCoord映射映射到[oldRes.width; oldRes.height。我敢肯定我错过了一些重要的东西,但现在找不到它。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

编辑:哎呀,也不是。我的状态缓存在绑定时没有启用正确的纹理单元,当该纹理已被绑定时(此修复也修复了其他不同的问题)。

我刚发现它 - 太简单了:显然(我在NVidia上)我们的RTT纹理绑定的纹理单元需要在调整大小后重新初始化(NOT ON INITIAL SIZING)。取消绑定纹理并在需要时重新绑定它可以完成这项工作。

PS:我正在使用一个使用所有可用纹理单元的状态缓存 - 这就是为什么会出现这种情况:纹理从未解除绑定,因为我的示例使用的纹理比单位少得多。 ..(所以除非删除纹理,否则纹理不会被绑定)。