Libgdx 3D 纹理透明度

Libgdx 3D Texture Transparency(Libgdx 3D 纹理透明度)
本文介绍了Libgdx 3D 纹理透明度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

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

I'm having a problem with a texture which has transparent areas. Basically it is a texture of a coin rendered onto a cube. I can't get the corners to appear transparent, they just show up as white/gray.

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

I made sure to enable G20.GL_Blend, so that can't be it.

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

This is the code I use in the render() method (I tried different combinations):

    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);

推荐答案

为模型添加混合属性:

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

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

Edit.- Link dead. It is like this:

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

这篇关于Libgdx 3D 纹理透明度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Show padding zeros using DecimalFormat(使用 DecimalFormat 显示填充零)
Java decimal formatting using String.format?(使用 String.format 的 Java 十进制格式?)
Sprintf equivalent in Java(Java 中的 Sprintf 等价物)
StAX XML formatting in Java(Java 中的 StAX XML 格式)
Java - format double value as dollar amount(Java - 将双值格式化为美元金额)
Java printf using variable field size?(Java printf使用可变字段大小?)