【问题标题】:JOGL Texture problemsJOGL 纹理问题
【发布时间】:2011-10-03 03:16:08
【问题描述】:

我正在尝试学习 JOGL 绑定。这些教程似乎已经过时了,所以我总是试图拼凑出每个教程的有效内容。

我在尝试将简单纹理应用于方形平面时遇到问题。

我有一个名为 box.png 的 204 X 204 图像。

在我的 init() 中,我执行以下操作来加载纹理:

        try {
            InputStream stream = getClass().getResourceAsStream("box.png");
            TextureData data = TextureIO.newTextureData(gl.getGLProfile(),
                stream, 100, 200, false, "png");
            boxTexture = TextureIO.newTexture(data);
        } catch (IOException exc) {
            exc.printStackTrace();
            System.exit(1);
        }

然后我尝试在 display() 中应用我的纹理:

        gl.glEnable(GL.GL_TEXTURE_2D);

        boxTexture.enable(gl);
        boxTexture.bind(gl);

        gl.glBegin(GL2.GL_QUADS);
        // Front Face
        gl.glTexCoord2f(0.0f, 0.0f);
        gl.glVertex3f(-1.0f, -1.0f, 1.0f); // Bottom Left Of The Texture and Quad
        gl.glTexCoord2f(1.0f, 0.0f);
        gl.glVertex3f(1.0f, -1.0f, 1.0f); // Bottom Right Of The Texture and Quad
        gl.glTexCoord2f(1.0f, 1.0f);
        gl.glVertex3f(1.0f, 1.0f, 1.0f); // Top Right Of The Texture and Quad
        gl.glTexCoord2f(0.0f, 1.0f);
        gl.glVertex3f(-1.0f, 1.0f, 1.0f);

        gl.glEnd();

是否有任何明显的问题可以解释我失败的原因?

【问题讨论】:

    标签: opengl 3d textures jogl bufferedimage


    【解决方案1】:

    我唯一能想到的是纹理不是 2 的幂。将纹理的大小更改为 256x256,然后看看它是否有效。根据您的显卡,是否支持它(如果显卡不是旧显卡,则应该支持)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多