使用 glScale 时出现纹理错误

Texture error when using glScale

我在 LWJGL 中使用即时模式绘制四边形(是的,我知道它已被弃用,VBO 是更好的选择)但是当使用 glScaled 放大某些纹理时,底部或侧面被切断并绘制了一条线在他们上面。它仅在放大时可见,并且放大得越远越普遍我使用的所有图像都是 2 的幂,即 64 128 等

希望通过这张图片你能更清楚地明白我的意思:

纹理错误图像

您的屏幕截图看起来纹理坐标被包裹了。

尝试调用 glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP );,对 GL_TEXTURE_WRAP_T 也是如此。或者,根据 OpenGL 版本,对于 GL_TEXTURE_WRAP_SGL_TEXTURE_WRAP_T 纹理参数,您可能需要 GL_CLAMP_TO_EDGE 值。设置纹理参数的正确时刻是在 glActiveTexture & glBindTexture 之后但在 glBegin.

之前

您可能没有更改这两个参数,它们的默认值是 GL_REPEAT,这就是导致伪影的原因。