gpt4 book ai didi

Android OpenGL ES 2 - 混合似乎总是相加的

转载 作者:搜寻专家 更新时间:2023-11-01 08:55:02 24 4
gpt4 key购买 nike

我似乎无法让我的混合在 Android 上的 OpenGL ES 2 中正常工作。我拥有的是带有 alpha channel 的纹理,我希望它们与相应的 alpha 一起出现。即使顶部绘制对象的 alpha 为 1.0,混合也会显示为叠加。在我的 fragment 着色器中,我将 alpha 值硬编码为 1.0,并意识到它似乎使用的是 color,而不是 alpha 值。

例如,它看起来像这样:enter image description here

而不是这个:enter image description here

我按照正确的顺序绘制,在这个例子中,蓝色在灰色方 block 的顶部应该是完全不透明的。我尝试了多种混合模式(一个,一个),(alpha,alpha)等,多个绘制顺序,以及使用和不使用深度测试。我尝试过随机混合模式,但结果不正确,所以当我设置它时混合会发生变化。

我认为问题在于 opengl 正在混合附加颜色。 (Alpha, Alpha) 对我来说很有意义,当我在着色器中明确地将 alpha 设置为 1.0 时,我想我会得到一个上面有一个蓝色圆圈的正方形(纹理投影的实际形状)。这没有发生让我感到困惑,我想我对 sfactor 和 dfactor 混合功能的理解还不够。

最佳答案

您是否使用 Android Bitmap 类来加载您的纹理?

在 Android 上使用 GLUtils.texImage2D() 从 Bitmap 加载 alpha 纹理已损坏。这是谷歌确实应该更好地记录的问题。问题在于 Bitmap 类将所有图像转换为预乘格式,但这不适用于 OpenGL ES,除非图像完全不透明。

本文提供了有关此 click here 的更多详细信息.

关于Android OpenGL ES 2 - 混合似乎总是相加的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19743594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com