【问题标题】:JOGL Confusion- How do textures work?JOGL Confusion - 纹理是如何工作的?
【发布时间】:2013-03-17 17:14:53
【问题描述】:

OpenGL 对我来说非常混乱,而且我不习惯很多图形术语等,这在许多教程中非常猖獗。我了解如何绘制三角形、圆形和四边形、多边形等,但现在我正在尝试了解纹理的工作原理。

有人能指出我理解纹理的正确方向吗?

由于我只能让 JOGL 在 Netbeans 中工作,因此我尝试将一个名为“Tiki Mask”的图像放入构建路径。当我运行它时,它没有抛出异常,所以我假设它找到了图像文件?

gl.glGenTextures(1, glu, 0);
    gl.glBindTexture(gl.GL_TEXTURE_2D, glu[1]);



    try {

        Texture tex = TextureIO.newTexture(new File("tikimask.jpg"), true);
         gl.glBegin(GL.GL_POLYGON);
    gl.glNormal3f(0,0,1);
        gl.glTexCoord2d(-tex.getWidth(), -tex.getHeight());
        gl.glVertex2d(-25, -25);
        gl.glTexCoord2d(-tex.getWidth(), tex.getHeight());
        gl.glVertex2d(1.0f,0);
        gl.glTexCoord2d(tex.getWidth(), tex.getHeight());
        gl.glVertex2d(.05f, .05f);
        gl.glTexCoord2d(tex.getWidth(), -tex.getHeight());
        gl.glVertex2d(0, .05f);
    gl.glEnd();
    gl.glFlush();



    } catch (IOException ex) {
        Logger.getLogger(SimpleJOGLwee.class.getName()).log(Level.SEVERE, null, ex);
    } catch (GLException ex) {
        Logger.getLogger(SimpleJOGLwee.class.getName()).log(Level.SEVERE, null, ex);
    }

【问题讨论】:

  • 如果你还在尝试用 Java 学习 OpenGL,我建议these tutorials。它们应该能让你很好地理解纹理和其他 OpenGL 概念,而且它们还使用 LWJGL,恕我直言,它比 JOGL 更好。
  • 另外,你的问题不是很清楚。你到底有什么不明白的?

标签: java opengl textures jogl


【解决方案1】:

你的问题是你从来没有绑定你加载的纹理。尝试添加这些行:

tex.enable();
tex.bind();

加载纹理后。

另外,我建议在你的初始化函数中加载你的纹理,而不是你的绘图函数,然后在你的绘图函数中简单地启用和绑定它们。

【讨论】:

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