Java Libgdx三维纹理透明度

Java Libgdx三维纹理透明度,java,libgdx,textures,transparency,alphablending,Java,Libgdx,Textures,Transparency,Alphablending,我有一个有透明区域的纹理问题。基本上,它是一个硬币的纹理渲染到一个立方体上。我无法使角落看起来透明,它们只是显示为白色/灰色 我确保启用了G20.GL\u Blend,所以不能这样做 这是我在render()方法中使用的代码(我尝试了不同的组合): 将混合属性添加到模型: 编辑-链接死了。是这样的: modelInstance.materials.get(0).set( new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINU

我有一个有透明区域的纹理问题。基本上,它是一个硬币的纹理渲染到一个立方体上。我无法使角落看起来透明,它们只是显示为白色/灰色

我确保启用了
G20.GL\u Blend
,所以不能这样做

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


将混合属性添加到模型:

编辑-链接死了。是这样的:

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

您需要将
BlendingAttribute
添加到
ModelInstance

modelInstance.materials.get(0.set)(
新的混合属性(GL20.GL_SRC_ALPHA,GL20.GL_ONE_减去_SRC_ALPHA)
)
还可以将其添加到ModelBuilder代码中(在其中创建可以创建ModelInstance的模型):

新材料(
TextureAttribute.createDiffuse(yourTransparentTexture),
新的混合属性(GL20.GL_SRC_ALPHA,GL20.GL_ONE_减_SRC_ALPHA))
)
ModelBatch.begin(…)将通过调用Gdx.gl.glDisable(GL20.gl\u BLEND)禁用混合。因此,请确保在调用ModelBatch.begin()后启用混合


来源:

链接已失效。现在回答短指令imho。
modelInstance.materials.get(0).set(
    new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)
)
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();