我无法使用带有LWJGL和光滑的TextureLoader类加载任何纹理以与OpenGL一起使用。这是我的代码:
try {
sprite = TextureLoader.getTexture("PNG", new FileInputStream("sprite.png"));
}catch(Exception e) {}
if(sprite == null) {
System.out.println("Sprite is null");
}else {sprite.bind();}
glBegin(GL_QUADS);
glTexCoord3f(0, 1, 0);
glVertex3f(0, 1, 0);
glTexCoord3f(1, 1, 0);
glVertex3f(1, 1, 0);
glTexCoord3f(1, 0, 0);
glVertex3f(1, 0, 0);
glTexCoord3f(0, 0, 0);
glVertex3f(0, 0, 0);
glEnd();
我知道图片在我班级的同一个目录中,我不相信我的OpenGL代码有任何问题,因为我已经能够成功地绘制四边形/立方体。
答案 0 :(得分:1)
我不知道为什么,但在使用lwjgl纹理时,你必须在3d quad的顶部创建一个2d纹理图像[如此:]
glBegin(GL_QUADS);
glTexCoord2d(0, 0);
glVertex3d(0, 0, 0);
glTexCoord2d(1, 0);
glVertex3d(32, 0, 0);
glTexCoord2d(1, 1);
glVertex3d(32, 32, 0);
glTexCoord2d(0, 1);
glVertex3d(0, 32, 0);
glEnd();