我正在研究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);
導致此:
這幾乎是完美的,而是以白色爲主色調變暗應該。關於什麼是正確的混合功能應該是實現這一點的任何想法?
注: 我的融合功能是如何工作的,採取的源和目標顏色的分數,並在我的情況下加在一起是很有意義的顏色會去對白色的想法。所以我想知道我想實現的功能只能用混合功能完成,還是需要其他功能?如有必要,我可以從片段着色器提供代碼,但對我來說,它看起來不像片段問題。