我最近成功地使用 GL_TEXTURE_RECTANGLE 制作了一个小型测试应用程序。现在我正在尝试将它集成到我更大的项目中,但是当我在渲染函数中调用 glBindTexture(GL_TEXTURE_RECTANGLE, _tex_id[0]) 时,它会导致 GL_INVALID_OPERATION 错误。纹理图像有时会显示几分之一秒,然后变黑并保持黑色。
我试图通过使用两组顶点和片段着色器来做到这一点,一组用于 3D 场景,一组用于 2D 叠加,但我以前从未尝试过,所以我不知道这是否是导致错误,或者我应该以不同的方式解决这个问题。着色器都可以正常编译和链接。
任何见解都将不胜感激,如果有助于查看一些代码,请告诉我,我会发布其中的一些(尽管我认为任何人都可能无法合理地浏览它)。
编辑: gDEBugger 在调用 glBindTexture() 时中断,当单击断点时,属性窗口会显示我的其他纹理之一的图片(由 3D 场景的着色器加载的纹理),它表明它正在尝试加载纹理编号 1,但我知道该编号已被用于绘制属性窗口中显示的相同 3D 场景的纹理……为什么 glGenTextures() 会给我重叠的纹理 ID 编号?这是正常的还是问题的一部分?