GLPaint有白色背景

时间:2009-11-18 18:02:18

标签: iphone opengl-es

我正在尝试通过逆向工程GLPaint在白色背景上绘制。我已经完成了kSaturation,kLuminosity和glBlendFunc的每一个组合,以及我能想到的刷子纹理的每一个组合(白色黑色,黑色白色,反式白色,别名/无别名等),但是避风港偶然发现了预期的效果。

我能够达到的最佳效果是使用glBlendFunc(GL_ SRC_ ALPHA,GL_ ONE_ MINUS_ SRC_ ALPHA)进行白色 - 反式循环,但这仍然给我一个暗淡的颜色和半反射外部位被解释为黑色(即带有黑色边缘的暗绿色,而不是带有透明边缘的鲜艳绿色)。就好像它仍然假设我是在黑色背景上。

有什么建议吗?

alt text
(来源:straandlooper.com

3 个答案:

答案 0 :(得分:1)

你还有:

glEnable(GL_BLEND);

答案 1 :(得分:1)

我相信这是你想要它在白色上工作的东西: glBlendFunc(GL_ONE,GL_ONE_MINUS_SRC_ALPHA);

然后使用一个白色的'Particle.png'圆圈,它突出了透明度(你的'最佳'例子)。

这应该给出期望的结果。

答案 2 :(得分:0)

是的,glEnable(GL_BLEND)就在那里。 我基本上开始使用GLPaint并将背景更改为白色,其余代码是相同的。我必须假设,因为GLPaint是用黑色背景制作的,所以有一些代码设置为理想地与黑色混合,我不知道哪个开关要翻转(或者,实际上,哪些开关可以翻转。哎呀,什么开关甚至存在)。

这是默认情况下的内容。 Lemme知道你是否看到任何错误......

glDisable(GL_DITHER)

glMatrixMode(GL_PROJECTION)

glMatrixMode(GL_MODELVIEW)

glEnable(GL_TEXTURE _2D)

glEnableClientState(GL_VERTEX _ARRAY)

glEnable(GL_BLEND)

glBlendFunc(GL_SRC _ALPHA,GL_ONE _MINUS _SRC _ALPHA)

glEnable(GL_POINT _SPRITE _OES)

glEnable(GL_COLOR _MATERIAL)

我不介意告诉你,我不知道这是什么。 -kev。