0

我无法使用带有 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 代码有任何问题,因为我已经能够成功绘制四边形/立方体。

4

1 回答 1

1

我不知道为什么,但是在使用 lwjgl 纹理时,您必须在 3d 四边形之上创建一个 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();
于 2012-08-20T12:43:35.543 回答