我正在尝试通过逆向工程GLPaint在白色背景上绘制。我已经完成了kSaturation,kLuminosity和glBlendFunc的每一个组合,以及我能想到的刷子纹理的每一个组合(白色黑色,黑色白色,反式白色,别名/无别名等),但是避风港偶然发现了预期的效果。
我能够达到的最佳效果是使用glBlendFunc(GL_ SRC_ ALPHA,GL_ ONE_ MINUS_ SRC_ ALPHA)进行白色 - 反式循环,但这仍然给我一个暗淡的颜色和半反射外部位被解释为黑色(即带有黑色边缘的暗绿色,而不是带有透明边缘的鲜艳绿色)。就好像它仍然假设我是在黑色背景上。
有什么建议吗?
(来源:straandlooper.com)
答案 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。