Point Sprite Alpha Blending
问题描述:
我正在研究Android的绘画应用程序,允许用户使用他们的手指进行绘制。它使用OpenGL ES 2.0使用点精灵技术以及FBO进行快速渲染。我有一个问题将各个点精灵混合在一起,其中透明区域在FBO上正确呈现,但是当精灵重叠时,我可以看到在前一个精灵中呈现的透明区域。下面是它的外观现在:Point Sprite Alpha Blending
这是这种混合式:
GLES20.glBlendFunc(GLES20.GL_ONE, GLES20.GL_ONE_MINUS_SRC_ALPHA);
如果我改变绘图颜色设置为白色或黑色的它完美的作品:
我也试过这种混合功能:
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_DST_ALPHA);
导致此:
这几乎是完美的,而是以白色为主色调变暗应该。关于什么是正确的混合功能应该是实现这一点的任何想法?
注: 我的融合功能是如何工作的,采取的源和目标颜色的分数,并在我的情况下加在一起是很有意义的颜色会去对白色的想法。所以我想知道我想实现的功能只能用混合功能完成,还是需要其他功能?如有必要,我可以从片段着色器提供代码,但对我来说,它看起来不像片段问题。