gpt4 book ai didi

java - LWJGL 随机纹理失真

转载 作者:行者123 更新时间:2023-11-30 10:59:14 25 4
gpt4 key购买 nike

最近我在渲染 LWJGL 纹理时遇到了一个非常奇怪的问题。有时当玩家四处移动时,我会收到这样的错误(在草地上):

enter image description here

其他时候,当我在移动的时候,或者当我只是站着不动的时候,都是这样的:

enter image description here

这是我的纹理渲染代码:

public static void drawQuad(Texture texture, float x, float y, float width, float height)
{
texture.bind();
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
GL11.glTranslatef(x, y, 0);
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0, 0);
GL11.glVertex2f(0, 0);
GL11.glTexCoord2f(1, 0);
GL11.glVertex2f(width, 0);
GL11.glTexCoord2f(1, 1);
GL11.glVertex2f(width, height);
GL11.glTexCoord2f(0, 1);
GL11.glVertex2f(0, height);
GL11.glEnd();
GL11.glLoadIdentity();
}

所有图 block 都是 64x64(所以是 ^2)。我完全感到困惑。

最佳答案

看起来纹理坐标环绕(使用 GL_REPEAT 环绕模式)所以如果纹理坐标从底部边缘略微超出,它会采样顶部(绿色)。

尝试添加这个:

GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL12.GL_CLAMP_TO_EDGE);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL12.GL_CLAMP_TO_EDGE);

关于java - LWJGL 随机纹理失真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31959471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com