【问题标题】:Changing Texture on an Object under certain condition在特定条件下更改对象的纹理
【发布时间】:2014-01-30 09:13:14
【问题描述】:

我在 Jogl 中遇到了纹理问题。我画了一个书架,当书架被检测为标记时,纹理应该改变。到目前为止,这是我的代码:

    Texture book;

    if (Library.touchTime != 0 && Library.marked.equals(name)){
        long actTime = System.currentTimeMillis();
        if (actTime - Library.touchTime <= 2000){
            this.book = books_marked;
        }
        else{
            Library.touchTime = 0;
            Library.marked = "";
            this.book = books;
        }
    }
    book.enable();
    book.bind();

//---- front --------------------------------------------------
    gl.glBegin(GL.GL_QUADS);
        normVector = front.getNorm();
        gl.glNormal3f(normVector.getX(), normVector.getY(), normVector.getZ());
        drawRect(gl, 0, 1, 2, 3);
    gl.glEnd();

Books 和 books_marked 对象是构造函数的参数,它们的创建方式如下:

// ---- Load Book Texture -----------------------------------------------
    try {
        InputStream stream = getClass().getResourceAsStream("books.jpg");
        data = TextureIO.newTextureData(stream, false, "jpg");
        books = TextureIO.newTexture(data);
    } catch (IOException e) {
        e.printStackTrace();
        System.exit(1);
    }

// -------------------------------------------------------------
// ---- Load Book_marked Texture -------------------------------------
    try {
        InputStream stream = getClass().getResourceAsStream("books_marked.jpg");
        data = TextureIO.newTextureData(stream, false, "jpg");
        books_marked = TextureIO.newTexture(data);
    } catch (IOException e) {
        e.printStackTrace();
        System.exit(1);
    }

// -------------------------------------------------------------------------    

我的意图是在 if 条件下实例化书本 Texture-Object,以便 bind() 命令会自动绑定正确的图片。但是纹理没有改变。有人知道我在这里做错了什么吗?

【问题讨论】:

  • 您确定您的if-condition 确实按预期工作吗?
  • 是的,我做到了。我在控制台上有输出显示运行时间,所以它工作正常。
  • 很抱歉打扰您,但您仍在使用不再维护的 JOGL 1。宁可切换到 JOGL 2,即使它不足以解决您的问题。

标签: java opengl textures jogl


【解决方案1】:

调用 Texture.bind(GL) 或 glBindTexture。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-25
    • 2020-04-11
    • 2011-12-25
    • 2015-09-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 2013-02-08
    相关资源
    最近更新 更多