阅读关于 Nehe 的 #20 教程和一个关于遮罩的问题,我使用黑白图像和不透明图像实现了遮罩,但是结果完全不是预期的(我在 iPhone 上使用 OpenGL ES 1,所以不能使用着色器)。
Source+Mask=Result
从结果图中可以看出,遮罩上的白色不是透明的,黑色不是源颜色,而是白色(!)这是我用来渲染它的源代码:
// we render from one big texture using coordinates
// so changing rectangle will change the drawn image
_pressedFrame = maskRect;
glBlendFunc(GL_DST_COLOR,GL_ZERO);
[super render:sender];
_pressedFrame = normalRect;
glBlendFunc(GL_ONE,GL_ONE);
[super render:sender];
谢谢你的帮助!