[英]Point Sprite Alpha Blending
我正在开发适用于Android的绘画应用程序,该应用程序允许用户使用手指进行绘制。 它是使用OpenGL ES 2.0,点精灵技术以及用于快速渲染的FBO构建的。 我在将单个点精灵混合在一起时遇到问题,这些地方透明的区域正确地在FBO上渲染,但是当精灵重叠时,我可以看到在先前的精灵上渲染了透明区域。 当前的外观如下:
这是这个混合方程式:
GLES20.glBlendFunc(GLES20.GL_ONE, GLES20.GL_ONE_MINUS_SRC_ALPHA);
如果我将绘图颜色更改为白色或黑色,则效果很好:
我也尝试过此混合功能:
GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_DST_ALPHA);
结果是:
这几乎是完美的选择,但改为白色时,主色应变暗。 关于实现此目标的正确混合功能有什么想法?
注意:我对混合功能的工作方式有所了解,方法是将源和目标颜色的一部分取整,然后将它们加在一起,这样颜色就趋于白色是有意义的。 所以我想知道我想实现的目标是仅使用混合功能还是需要其他功能? 如有必要,我可以从片段着色器提供代码,但对我来说,这看起来好像不是片段问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.