Jul*_*per 4 java opengl graphics textures lwjgl
我正在使用LWJGL和Slick框架将Textures加载到我的OpenGL应用程序中.
我正在使用这个图片: 
这个代码导入并利用纹理:
flagTexture = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("japan.png"));
Run Code Online (Sandbox Code Playgroud)
......
flagTexture.bind();
GL11.glColor3f(1.0f, 1.0f, 1.0f);
GL11.glPushMatrix();
GL11.glTranslatef(0.0f, 0.0f, -10.0f);
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0.0f, 0.0f);
GL11.glVertex2f(0.0f, 0.0f);
GL11.glTexCoord2f(1.0f, 0.0f);
GL11.glVertex2f(2.5f, 0.0f);
GL11.glTexCoord2f(1.0f, 1.0f);
GL11.glVertex2f(2.5f, 2.5f);
GL11.glTexCoord2f(0.0f, 1.0f);
GL11.glVertex2f(0.0f, 2.5f);
GL11.glEnd();
GL11.glPopMatrix();
Run Code Online (Sandbox Code Playgroud)
但最终结果变成了这样:

我没有使用任何特殊设置,如GL_REPEAT或类似的东西.这是怎么回事?如何使纹理填充给定的顶点?
看起来纹理被填充到最接近的2的幂.这里有两种解决方案:
1.0f为textureWidth/nearestPowerOfTwoWidth和textureHeight/nearestPowerOfTwoHeight.可能还有一些特定的LWJGL方法允许非二次幂纹理,请看一下.