glBlendFunc的几种常用情况
先Mark一下,后面有时间补上DEMO
1.画航母大灯,手电筒(效果为:透过黑色半透明层可看到下面的背景图,仅圆圈部分)
1)先画圆圈
2)再画背景图(大背景)
大背景设置 glBlendFunc bf = { GL_ONE_MINUS_DST_ALPHA, GL_ZERO };
2.给蛋糕涂奶油(效果为:仅刷子部分可看到想要画上去的部分,刷子叠加可看到涂上了一片奶油)
1)先画刷子
2)再画蛋糕(想要涂在原来蛋糕上的图层)
蛋糕设置 glBlendFunc bf = { GL_DST_ALPHA, GL_ZERO };
3.放大镜效果(效果为:透过放大镜可以看到较大底下的效果)
1)首先你有一个放大镜圆圈图片
2)然后你需要构建两个RenderTexture(大小均为放大镜圆圈大小),
the first 用来绘制放大后的背景效果(先绘制,后缩放为1.5倍) ,此部分绘制方法为先将RenderTexture坐标转换到你绘制的位置(glTranslatef(-x, -y, 0);,x,y为放大镜圆圈世界坐标)然后叠加背景图;
the second 用来显示到你的场景当中(此RenderTexture为圆圈和the first的差值,即放大后的效果),此部分绘制方法圆圈和first叠加(抽象出的两者坐标一定要转换到同一个坐标系当中) second部分 两个差值设置 glBlendFunc bf = { GL_DST_ALPHA, GL_ZERO };
show the second,good luck!
4.常用 glBlendFunc bf = { GL_ZERO, GL_ONE_MINUS_SRC_ALPHA};