Java &引用;“分层混合”;使用OpenGL

Java &引用;“分层混合”;使用OpenGL,java,opengl,opengl-es,libgdx,Java,Opengl,Opengl Es,Libgdx,Adobe在其一些名为“Layer”的产品中具有这种混合效果,它基本上实现了此图像左侧的效果: 当重叠在同一批中绘制的两个透明图像时,我得到的结果显示在右侧,我试图获得左侧的结果 我从来都不擅长源/目标混合函数,我甚至不确定它们是否是这个问题的解决方案,但如果是,我需要什么组合来实现这个效果 例如: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 您是否考虑过使用模具或深度缓冲区来拒绝交叉重叠的部分?我写了一篇不确定是否适用的文章,但基于

Adobe在其一些名为“Layer”的产品中具有这种混合效果,它基本上实现了此图像左侧的效果:

当重叠在同一批中绘制的两个透明图像时,我得到的结果显示在右侧,我试图获得左侧的结果

我从来都不擅长源/目标混合函数,我甚至不确定它们是否是这个问题的解决方案,但如果是,我需要什么组合来实现这个效果

例如:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

您是否考虑过使用模具或深度缓冲区来拒绝交叉重叠的部分?我写了一篇不确定是否适用的文章,但基于此,考虑将操作码设置为
GL\u或
,然后将
glLogicOp(操作码)
?根据您的需要,也许您可以将精灵绘制到帧缓冲区,使其内部完全不透明。然后将帧缓冲区的颜色纹理绘制到具有较低alpha级别的屏幕上。但是,如果您试图对具有不同数量alpha的各种精灵执行此操作,此方法可能不起作用,这取决于您试图实现的外观。