glBlendFunc的幾種經常使用狀況

先Mark一下,後面有時間補上DEMOspa

1.畫航母大燈,手電筒(效果爲:透過黑色半透明層可看到下面的背景圖,僅圓圈部分)圖片

   1)先畫圓圈class

   2)再畫背景圖(大背景)方法

   大背景設置  glBlendFunc bf = { GL_ONE_MINUS_DST_ALPHA, GL_ZERO };時間

 

2.給蛋糕塗奶油(效果爲:僅刷子部分可看到想要畫上去的部分,刷子疊加可看到塗上了一片奶油)co

   1)先畫刷子new

   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};

相關文章
相關標籤/搜索