0
Texture texture = loadTexture("main_menu/bg");
texture.bind();
glBegin(GL_QUADS);
glTexCoord2f(0, 0);
glVertex2i(1, 1);
glTexCoord2f(0, 1);
glVertex2i(1, 720);
glTexCoord2f(1, 1);
glVertex2i(1280, 720);
glTexCoord2f(1, 0);
glVertex2i(1280, 1);
glEnd();
我使用帶有slick2D的LWJGL庫。我以上述方式渲染紋理,但紋理的位置不正確。我有1280x720全屏窗口,我在窗口上渲染背景紋理,但紋理在X軸上減少到窗口的2/3,在Y軸上減少到窗口的3/4。OpenGL壞紋理大小
我加入的OpenGL設置,所以在這裏它是:
WINDOW_WIDTH = 1280;
WINDOW_HEIGHT = 720;
glEnable(GL_TEXTURE_2D);
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, WINDOW_WIDTH, WINDOW_HEIGHT, 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glViewport(0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
這裏是加載紋理方法:
private Texture loadTexture(String key) {
try {
return TextureLoader.getTexture("PNG", new FileInputStream(
new File("res/" + key + ".png")));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
如果在不支持2種紋理的情況下使用非功率紋理,紋理變爲白色,則與屏幕上的大小無關。 – Kevin