我正在使用 Slick2D 库将文本呈现到屏幕上,但为了呈现像 Rect 这样的 gl 形状,我需要首先禁用 GL_TEXTURE_2D。我只是好奇为什么需要这样做。为什么 GL_TEXTURE_2D 会禁用形状的渲染?
问问题
488 次
2 回答
6
OpenGL 的工作方式基本上是一个大型的全局状态机。绑定纹理时,之后绘制的每个三角形都将使用该纹理。
这里的问题是文本绘制之后不会取消绑定它的纹理,因此您之后绘制的形状将使用该纹理而不是没有纹理。您认为它“禁用”渲染的原因是因为纹理由字符组成,其他所有内容都是透明的。您所看到的是 OpenGL 以 0 的不透明度绘制您的形状。
禁用时会发生什么情况GL_TEXTURE_2D
是纹理变得未绑定并且您在没有纹理的情况下定期绘制。
于 2012-12-17T19:09:22.620 回答
2
因为应用了字符串的纹理。由于您可能没有设置任何纹理坐标,因此它可能使用透明的纹理部分,因此您什么也看不到。
于 2012-12-17T18:59:05.803 回答