OpenGL 奇怪的颜色

OpenGL strange color

我们正在将我们的游戏从 OpenGL 2.1 升级到 3.1 核心(向前兼容)环境。 除了一个小但非常奇怪的故障外,一切都很好。

我们有一个白色的填充纹理,在 3D 世界加载后不知何故变成了红色。 IE。它在采样时开始在片段着色器中提供 vec3(1,0,0) 而不是 vec3(1,1,1).

它只发生在 3.1 向前兼容的上下文中。兼容性 3.1 甚至核心 3.1 上下文都没有展示这一点。没有 GL 错误。而且,它发生在 Intel 和 nVidia GPU 上。

它会是什么?

我可以看到我错误地破坏了我们的白色纹理,因为我使用它来捕获深度缓冲区。因此,它的内部格式为 DEPTH_COMPONENT,即 LUMINANCE 与 RED,具体取决于前向兼容性。