混合、面剔除

混合

在OpenGL中握侧,物體透明技術(shù)通常被叫做混合(Blending)蚯瞧。透明是物體(或物體的一部分)非純色而是混合色,這種顏色來自于不同濃度的自身顏色和它后面的物體顏色品擎。

一個(gè)物體的透明度埋合,被定義為它的顏色的alpha值。

開啟混合:glEnable(GL_BLEND);

OpenGL以下面的方程進(jìn)行混合:

混合方式

片段著色器運(yùn)行完成并且所有的測試都通過以后萄传,混合方程才能自由執(zhí)行片段的顏色輸出甚颂,當(dāng)前它在顏色緩沖中(前面片段的顏色在當(dāng)前片段之前儲(chǔ)存)。源和目標(biāo)顏色會(huì)自動(dòng)被OpenGL設(shè)置秀菱,而源和目標(biāo)因子可以讓我們自由設(shè)置振诬。

混合函數(shù)

void glBlendFunc(GLenum sfactor, GLenum dfactor)

設(shè)置源(source)和目標(biāo)(destination)因子。

常用可選參數(shù)

顏色常數(shù)向量Cconstant可以用glBlendColor函數(shù)分開來設(shè)置衍菱。

也可以為RGB和alpha通道各自設(shè)置不同的選項(xiàng)贷揽,使用glBlendFuncSeperate:

glBlendFuncSeperate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,GL_ONE, GL_ZERO);

void glBlendEquation(GLenum mode)允許我們設(shè)置不同的操作,有3種可行的選項(xiàng):

改變混合公式

要讓混合在多物體上有效梦碗,我們必須先繪制最遠(yuǎn)的物體,最后繪制最近的物體蓖救。普通的無混合物體仍然可以使用深度緩沖正常繪制洪规,所以不必給它們排序。我們一定要保證它們在透明物體前繪制好循捺。當(dāng)無透明度物體和透明物體一起繪制的時(shí)候斩例,通常要遵循以下原則:

先繪制所有不透明物體。 為所有透明物體排序从橘。 按順序繪制透明物體念赶。

面剔除

可以不用繪制不會(huì)出現(xiàn)在觀察者視野外的物體(比如角度立方體看不到的面)來提高渲染的性能础钠。

面剔除(Face culling),OpenGL允許檢查所有正面朝向(Front facing)觀察者的面叉谜,并渲染它們旗吁,而丟棄所有背面朝向(Back facing)的面,這樣就節(jié)約了我們很多片段著色器的命令停局。OpenGL分析頂點(diǎn)數(shù)據(jù)的連接順序(Winding order)來判斷物體的正面和反面很钓。

頂點(diǎn)鏈接順序

三角形的頂點(diǎn)鏈接順序

默認(rèn)情況下,逆時(shí)針的頂點(diǎn)連接順序被定義為三角形的正面董栽。實(shí)際的頂點(diǎn)連接順序是在光柵化階段(Rasterization stage)計(jì)算的码倦,所以當(dāng)頂點(diǎn)著色器已經(jīng)運(yùn)行后。頂點(diǎn)就能夠在觀察者的觀察點(diǎn)被看到锭碳。

1袁稽,啟用面剔除:glEnable(GL_CULL_FACE);

2,剔除特定的面:glCullFace(GL_BACK);

GL_BACK擒抛,GL_FRONT推汽,GL_FRONT_AND_BACK

3,改變判定正面的標(biāo)準(zhǔn):glFrontFace(GL_CCW);

默認(rèn)值是GL_CCW闻葵,它代表逆時(shí)針民泵,GL_CW代表順時(shí)針順序。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末槽畔,一起剝皮案震驚了整個(gè)濱河市栈妆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厢钧,老刑警劉巖鳞尔,帶你破解...
    沈念sama閱讀 223,207評論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異早直,居然都是意外死亡寥假,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評論 3 400
  • 文/潘曉璐 我一進(jìn)店門霞扬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來糕韧,“玉大人,你說我怎么就攤上這事喻圃∮┎剩” “怎么了?”我有些...
    開封第一講書人閱讀 170,031評論 0 366
  • 文/不壞的土叔 我叫張陵斧拍,是天一觀的道長雀扶。 經(jīng)常有香客問我,道長肆汹,這世上最難降的妖魔是什么愚墓? 我笑而不...
    開封第一講書人閱讀 60,334評論 1 300
  • 正文 為了忘掉前任予权,我火速辦了婚禮,結(jié)果婚禮上浪册,老公的妹妹穿的比我還像新娘扫腺。我一直安慰自己,他們只是感情好议经,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,322評論 6 398
  • 文/花漫 我一把揭開白布斧账。 她就那樣靜靜地躺著,像睡著了一般煞肾。 火紅的嫁衣襯著肌膚如雪咧织。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,895評論 1 314
  • 那天籍救,我揣著相機(jī)與錄音习绢,去河邊找鬼。 笑死蝙昙,一個(gè)胖子當(dāng)著我的面吹牛闪萄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播奇颠,決...
    沈念sama閱讀 41,300評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼败去,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了烈拒?” 一聲冷哼從身側(cè)響起圆裕,我...
    開封第一講書人閱讀 40,264評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎荆几,沒想到半個(gè)月后吓妆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,784評論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吨铸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,870評論 3 343
  • 正文 我和宋清朗相戀三年行拢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诞吱。...
    茶點(diǎn)故事閱讀 40,989評論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡舟奠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出房维,到底是詐尸還是另有隱情沼瘫,我是刑警寧澤,帶...
    沈念sama閱讀 36,649評論 5 351
  • 正文 年R本政府宣布握巢,位于F島的核電站,受9級(jí)特大地震影響松却,放射性物質(zhì)發(fā)生泄漏暴浦。R本人自食惡果不足惜溅话,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,331評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望歌焦。 院中可真熱鬧飞几,春花似錦、人聲如沸独撇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纷铣。三九已至卵史,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搜立,已是汗流浹背以躯。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啄踊,地道東北人忧设。 一個(gè)月前我還...
    沈念sama閱讀 49,452評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像颠通,于是被迫代替她去往敵國和親址晕。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,995評論 2 361

推薦閱讀更多精彩內(nèi)容