You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LWJGL2(Slick2D)窗口最大化时纹理间出现线条问题修复

问题修复方案

编辑注:该问题已通过如下配置修复:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

将上述代码添加到纹理渲染方法中glEnable(GL_TEXTURE_2D);语句的紧后方即可解决问题。


问题详情

现象

  • 游戏窗口最大化时,纹理之间会出现异常线条
  • 窗口分辨率为800x600时纹理显示完全正常
  • 项目使用Slick2D加载纹理,暂未定位到是否是该组件导致的问题

相关代码

主循环逻辑

主循环while(!Display.isCloseRequested())内的代码如下:

if (Display.wasResized()) {
    glViewport(0, 0, Display.getWidth(), Display.getHeight());
}

glClear(GL_COLOR_BUFFER_BIT);

glEnable(GL_TEXTURE_2D);

glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

// 启用Alpha混合
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glViewport(0,0, Display.getWidth(), Display.getHeight());
glMatrixMode(GL_MODELVIEW);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, Display.getWidth(), Display.getHeight(), 0, 1, -1);
glMatrixMode(GL_MODELVIEW);

纹理渲染方法实现

glEnable(GL_TEXTURE_2D);
glDisable(GL_BLEND);

texture.bind();

glBegin(GL_QUADS);

glTexCoord2d(0, 0);
glVertex2d(x, y);

glTexCoord2d(1, 0);
glVertex2d(x + width, y);

glTexCoord2d(1, 1);
glVertex2d(x + width, y + height);

glTexCoord2d(0, 1);
glVertex2d(x, y + height);

glEnd();

glEnable(GL_BLEND);
glDisable(GL_TEXTURE_2D);

欢迎提供同类问题的解决思路参考。


内容的提问来源于stack exchange,提问作者Wolfsurge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 08:09:27