我想制作一款8bit风格的游戏,因此我的所有纹理都是16x16,可以扩展到128x128。但是我注意到,当我这样做时,他们很模糊。我预料到这一点并使用:
glTexParameteri( GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER,GL11.GL_NEAREST)
但这并没有帮助。所以我开始研究,我发现了一个问题,谈到使用黑白棋盘来了解发生了什么。我用黑白棋盘替换了我的纹理,这就是我得到的:
奇怪的是,即使我指定最近它正在使用线性。有什么帮助吗?
编辑:我的纹理是POT,也是我正在绘制它的表面。
<小时/>
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glEnable(GL11.GL_TEXTURE_2D);
tex.bind();
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2d(0,0);
GL11.glVertex2d(0, 0); // Upper-left
GL11.glTexCoord2d(1,0);
GL11.glVertex2d(1024,0); // Upper-right
GL11.glTexCoord2d(1, 1);
GL11.glVertex2d(1024,1024); // Bottom-right
GL11.glTexCoord2d(0,1);
GL11.glVertex2d(0,1024); // Bottom-left
GL11.glEnd();
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_BLEND);
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glViewport((int)0, (int)0, (int)screenWidth, (int)screenHeight);
GL11.glOrtho(0, 1920, 1440, 0, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
GL11.glTexParameteri( GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER,GL11.GL_LINEAR);
GL11.glTexParameteri( GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER,GL11.GL_LINEAR);