尝试遮盖 ColorSplash 之类的纹理或 iSteam 等其他应用程序时,最好的选择是什么?
我开始学习 OPENGL ES 就像... 4 天前(我是一个菜鸟)并尝试了以下方法:
1)我创建了一个彩色纹理2D,第一个纹理的灰度版本和第三个纹理2D,称为蒙版
2)我还为画笔创建了一个texture2D ......它是灰度的并且它是不透明的(画笔=黑色= 0,0,0,1,环境=白色= 1,1,1,1)。我的目的是创建一个边缘平滑的抗锯齿刷,但我现在可以使用普通刷
3)我在互联网上搜索了遮罩技术,找到了这个教程 ZeusCMD - 设计和开发教程:OpenGL ES 编程教程 - 关于遮罩的遮罩。本教程告诉我使用混合来实现遮罩...首先绘制彩色,然后使用 glBlendFunc(GL_DST_COLOR, GL_ZERO) 进行遮罩,然后使用 glBlendFunc(GL_ONE, GL_ONE) 进行灰度...这给了我一些接近我想要的东西。 ..但不完全是我想要的。结果被掩盖了,但不知何故过亮了
4)为了绘制到蒙版纹理,我使用了一个额外的帧缓冲区对象(FBO)
我对生成的图像(过亮的图片)和使用这种方法实现的速度并不满意。我认为正常的方法是直接绘制到灰度(叠加)texture2D,只影响画笔命中位置的 alpha 通道。有没有一种快速的方法来实现这一目标?我进行了很多搜索,但从未得到清晰易懂的答案。然后,在主绘制循环中,我只能绘制彩色纹理,然后将灰度与 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) 混合。
我只想学习使用 OPENGL ES,它让我发疯,因为我无法让它正常工作。一个建议,一个教程的链接将不胜感激。