blend模式 cocos sprite

cocos creator 中sprite有個有意思的屬性

| Blend Factor | 當前圖像混合模式 |

| Dst Blend Factor | 背景圖像混合模式讼昆,和上面的屬性共同作用倦踢,可以將前景和背景 Sprite 用不同的方式混合渲染带斑,

這兩個的結(jié)合確實可以產(chǎn)生不少有意義的效果。

##Blend公式原理

OpenGL中的混合是通過這個方程來實現(xiàn)的:

Cˉresult=Cˉsource?Fsource+Cˉdestination?Fdestination

CˉsourceCˉsource:源顏色向量咧七。這是源自紋理的顏色向量。

CˉdestinationCˉdestination:目標顏色向量。這是當前儲存在顏色緩沖中的顏色向量杈笔。

FsourceFsource:源因子值挑童。指定了alpha值對源顏色的影響累铅。

FdestinationFdestination:目標因子值。指定了alpha值對目標顏色的影響站叼。


類似這樣

使用源顏色向量的alpha作為源因子娃兽,使用1?alpha作為目標因子


?GL_ONE:1.0

? GL_ZERO:0.0

? ?GL_SRC_ALPHA:源的Alpha值作為因子

? ?GL_DST_ALPHA:目標Alpha作為因子

? ? GL_ONE_MINUS_SRC_ALPHA:1.0減去源的Alpha值作為因子

? ? ?GL_ ONE_MINUS_DST_ALPHA:1.0減去目標的Alpha值作為因子

glBlendFunc(GL_ZERO, GL_ONE)? 第一個表示源因子,第二個表示目標因子


1.默認的狀態(tài)下使用GL_ONE,GL_ONE_MINUS_SRC_ALPHA這兩個參數(shù)尽楔,這也是我們看到的情況投储,Sprite會覆蓋下面的描繪

2.設(shè)置glBlendFunc(GL_ONE,GL_ZERO),?表面完全使用源顏色阔馋,即和不混合一樣的效果玛荞,但是如果Sprite本身有透明的地方,則透明的地方會變成黑色呕寝。因為此時不顯示目標的顏色勋眯。即使透明度為0也沒有意義。


2:如果設(shè)置glBlendFunc(GL_ZERO, GL_ONE),表示不使用源顏色客蹋,那么該Sprite便不被畫出來塞蹭。

常數(shù)相關(guān)因子融合因子結(jié)果


GL_ZERO????源因子或目的因子????????(0,0,0,0)

GL_ONE????源因子或目的因子????????????(1,1,1,1)

GL_DST_COLOR????????源因子????????????(Rd,Gd,Bd,Ad)

GL_SRC_COLOR????????目的因子????????(Rs,Gs,Bs,As)

GL_ONE_MINUS_DST_COLOR????源因子????????(1,1,1,1)-(Rd,Gd,Bd,Ad)

GL_ONE_MINUS_SRC_COLOR????目的因子????????(1,1,1,1)-(Rs,Gs,Bs,As)

GL_SRC_ALPHA????????????源因子或目的因子????????????(As,As,As,As)

GL_ONE_MINUS_SRC_ALPHA????????源因子或目的因子(1,1,1,1)-(As,As,As,As)

GL_DST_ALPHA????????????源因子或目的因子????????????(Ad,Ad,Ad,Ad)

GL_ONE_MINUS_DST_ALPHA????????源因子或目的因子????????(1,1,1,1)-(Ad,Ad,Ad,Ad)

GL_SRC_ALPHA_SATURATE????????源因子????????(f,f,f,1); f=min(As,1-Ad


核心算法 就是 根據(jù)透明度來計算 如果因子為0就是不顯示,為1就是完全顯示嚼酝,中間值就是有透明度兩張圖片有融合

根據(jù)公式推敲下渲染的結(jié)果:

1. 當目標和源因子都設(shè)置為GL_ZERO浮还,無論混合方程怎樣設(shè)置,最終肯定啥也沒有闽巩。

2. 當源設(shè)置為GL_ONE钧舌,目標設(shè)置為GL_ZERO,方程設(shè)置為加還是減涎跨,最終應(yīng)該渲染的就是目標的顏色洼冻,也就是之渲染出金幣。

3. 當源設(shè)置為GL_ONE隅很,目標設(shè)置為GL_SRC_COLOR撞牢,方程設(shè)置為加,根據(jù)公式最終顏色=(目標顏色*目標因子)+(源顏色*源因子)叔营,得到最終有顏色的區(qū)域必定是源alpha不為0的區(qū)域屋彪,因為源是作為目標因子的坎弯,源*目標慧起,最終源中alpha為0的區(qū)域,這個結(jié)果也為0挠铲,也就是最終的結(jié)果區(qū)域透明了婴谱。

其他的都根據(jù)公式了蟹但。最終不同參數(shù)下的混合結(jié)果所示,1谭羔、2华糖、3分別于圖1、2瘟裸、3對應(yīng)客叉。


貓是目標圖片,金幣是源


一個可以直接看效果的網(wǎng)站

https://www.andersriggelsen.dk/glblendfunc.php

一篇參考文章

http://www.reibang.com/p/174dbf898684zhe

混合公式

https://blog.csdn.net/u010468553/article/details/79786497

https://www.cnblogs.com/kefeiGame/p/8202624.html

算法解釋比較好的網(wǎng)站

https://blog.csdn.net/junzia/article/details/76580379

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末话告,一起剝皮案震驚了整個濱河市兼搏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌超棺,老刑警劉巖向族,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異棠绘,居然都是意外死亡件相,警方通過查閱死者的電腦和手機再扭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夜矗,“玉大人泛范,你說我怎么就攤上這事∥伤海” “怎么了罢荡?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長对扶。 經(jīng)常有香客問我区赵,道長,這世上最難降的妖魔是什么浪南? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任笼才,我火速辦了婚禮,結(jié)果婚禮上络凿,老公的妹妹穿的比我還像新娘骡送。我一直安慰自己,他們只是感情好絮记,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布摔踱。 她就那樣靜靜地躺著,像睡著了一般怨愤。 火紅的嫁衣襯著肌膚如雪派敷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天憔四,我揣著相機與錄音膀息,去河邊找鬼般眉。 笑死了赵,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的甸赃。 我是一名探鬼主播柿汛,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼埠对!你這毒婦竟也來了络断?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤项玛,失蹤者是張志新(化名)和其女友劉穎貌笨,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體襟沮,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡锥惋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年昌腰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膀跌。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡遭商,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捅伤,到底是詐尸還是另有隱情劫流,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布丛忆,位于F島的核電站祠汇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏熄诡。R本人自食惡果不足惜座哩,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粮彤。 院中可真熱鬧根穷,春花似錦、人聲如沸导坟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惫周。三九已至尘惧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間递递,已是汗流浹背喷橙。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留登舞,地道東北人贰逾。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像菠秒,于是被迫代替她去往敵國和親疙剑。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355