【问题标题】:Libgdx 3D Texture TransparencyLibgdx 3D 纹理透明度
【发布时间】:2013-10-07 09:16:28
【问题描述】:

我在使用具有透明区域的纹理时遇到问题。基本上,它是呈现在立方体上的硬币纹理。我无法让角落看起来透明,它们只是显示为白色/灰色。

我确保启用G20.GL_Blend,所以不可能。

这是我在render() 方法中使用的代码(我尝试了不同的组合):

    Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
    Gdx.gl20.glEnable(GL20.GL_BLEND);
    Gdx.gl20.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    Gdx.gl20.glEnable(GL20.GL_TEXTURE_2D);
    Gdx.gl20.glBlendEquation(GL20.GL_BLEND);
    
    modelBatch.begin(cam);
    texture.bind();
    modelBatch.render(instance, environment);
    modelBatch.end();
        
    Gdx.gl20.glDisable(GL20.GL_TEXTURE_2D);

【问题讨论】:

    标签: java libgdx textures transparency alphablending


    【解决方案1】:

    为模型添加混合属性:

    http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=10016&p=45952#p45369

    编辑。- 链接失效。是这样的:

    modelInstance.materials.get(0).set(
        new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)
    )
    

    【讨论】:

    • 链接死了。现在回答缺点恕我直言。
    【解决方案2】:

    您需要将BlendingAttribute 添加到您的ModelInstance:

    modelInstance.materials.get(0).set(
        new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)
    )
    

    您也可以将它添加到您的模型构建器代码中(您可以在其中创建一个可以创建模型实例的模型):

    new Material(
        TextureAttribute.createDiffuse(yourTransparentTexture), 
        new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA))
    )
    

    【讨论】:

      【解决方案3】:

      ModelBatch.begin(...) 将通过调用 Gdx.gl.glDisable(GL20.GL_BLEND) 来禁用混合。因此,请确保在调用 ModelBatch.begin() 之后启用混合。

      modelBatch.begin(camera); // resets Blending to false
      // enable Blending
      Gdx.gl.glEnable(GL20.GL_BLEND);
      Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
      // draw mesh
      mesh.render(shader, GL20.GL_TRIANGLES);
      modelBatch.end();
      

      来源:https://stackoverflow.com/a/66820414/2413469

      【讨论】:

        猜你喜欢
        • 2015-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-03
        • 2015-03-20
        • 1970-01-01
        相关资源
        最近更新 更多