Android 具有多种纹理的gl_fragColor

Android 具有多种纹理的gl_fragColor,android,opengl-es,textures,fragment-shader,Android,Opengl Es,Textures,Fragment Shader,我目前有两个纹理应用于单个对象。最终会有更多的补充,但我很难让目前的两个正常工作 目前,我正在将我的fragcolor设置为两幅加在一起的图像。实际上,我所做的一切类似于: gl_FragColor = texture1 + texture2; 我确信有一个更好的方法来开始做这些事情,但它也产生了一个问题,即图像重叠的地方被添加在一起(显然),这不是我在当前项目中尝试做的 我不确定这是否仅仅是我的fragColor的问题,它有GLSL的一些内置功能来做类似的事情,或者我是否需要做一些类似于以其

我目前有两个纹理应用于单个对象。最终会有更多的补充,但我很难让目前的两个正常工作

目前,我正在将我的fragcolor设置为两幅加在一起的图像。实际上,我所做的一切类似于:

gl_FragColor = texture1 + texture2;
我确信有一个更好的方法来开始做这些事情,但它也产生了一个问题,即图像重叠的地方被添加在一起(显然),这不是我在当前项目中尝试做的

我不确定这是否仅仅是我的fragColor的问题,它有GLSL的一些内置功能来做类似的事情,或者我是否需要做一些类似于以其他方式合并图像的事情


编辑::添加颜色的示例我的意思是:

我认为您希望在着色器中混合两个纹理,而不是使用常规混合。我相信,像这样的方法应该行得通——如果你做出假设,你或许可以简化这个过程

gl_FragColor = backgroundcolor;
gl_FragColor = (gl_FragColor*(1-texture1.a))+(texture1*texture1.a);
gl_FragColor = (gl_FragColor*(1-texture2.a))+(texture2*texture2.a);
编辑:


这里的最终答案是常规混合,而不是在片段着色器中混合。

只要我们不知道您“试图对当前项目做什么”,我们就无法给您任何解释。当然,把两种颜色加在一起是可行的,但如果你想用不同的方式把它们结合起来,那就这样做吧。否则,告诉我们你想要达到什么效果。我为此道歉,我没有意识到这是多么糟糕的措辞。我想做的就是让图像按特定顺序分层,而不是完全混合在一起。我把它弄得一团糟,但我似乎不知道如何使它不以这样或那样的形式混合在一起。我相信这是一些简单化的东西,会让我觉得有点稠密。如果你想让它们分层,而不是以任何方式混合,那么这将总是导致第二种纹理颜色。我不确定我是否理解你的意思。我相信我已经掌握了图像放置的顺序,但是不管顺序如何,它现在所做的都会发生。它是将重叠的像素添加到一起,而不仅仅是将最新的像素应用到上一个像素上。我仍然不确定我是否必须改变我在fragColor中传递的方式,或者我是否必须在手之前做一些事情将纹理组合在一起,或者做一些我甚至没有想到的事情。问题是,当你阅读两种纹理时,你总是有两种颜色。所以第二个纹理总是最近的。或者你想让前一个只出现在最近一个是透明的地方,那么你肯定需要某种混合。这个答案不是我特定问题的最终答案,但多亏阿恩耐心地帮助我,它才得以解决。对于其他可能有类似问题的人,请务必阅读第一篇帖子评论中链接的我和阿恩之间的聊天,因为我的问题的更好解决方案就在这里。再次感谢你的时间,阿恩。