2018-12-03 Shader基礎(chǔ)篇-可編程GPU圖形繪制管線

一负蚊、可編程GPU圖像繪制管線

所謂可編程圖形繪制管線袍辞,就是給定虛擬攝像機(jī)贸宏、模型造寝、光源等元素輸出一副電腦屏幕顯示的二維圖像】粤罚《事實(shí)計(jì)算機(jī)圖像學(xué)》的書(shū)中概況圖形繪制管線為三個(gè)主要的階段:應(yīng)用诫龙、幾何、光柵階段

1鲫咽、頂點(diǎn)坐標(biāo)空間的轉(zhuǎn)換

?? 在可編程圖形繪制管線中頂點(diǎn)著色器最重要的任務(wù)就是將圖元頂點(diǎn)的從模型局部坐標(biāo)空間換到屏幕坐標(biāo)空間赐稽。雖然可編程頂點(diǎn)著色器允許頂點(diǎn)變換的方法很多叫榕,但是有些變化過(guò)程還是發(fā)生在之后的固定功能階段。當(dāng)編寫(xiě)頂點(diǎn)著色器程序的時(shí)候姊舵,理解那些過(guò)程 各自發(fā)生在那個(gè)階段是非常重要的晰绎。

視點(diǎn)轉(zhuǎn)換就是將模型的世界坐標(biāo)轉(zhuǎn)換成視點(diǎn)所在的坐標(biāo)系。而通常unity中所說(shuō)的攝像機(jī)視場(chǎng)角就是在坐標(biāo)軸方向上所展開(kāi)的角度括丁。

投影轉(zhuǎn)換和裁剪剔除:投影分為正交投影和透視投影荞下。正交投影即近裁剪和遠(yuǎn)裁剪面一樣大。他們的區(qū)別就是正交投影投出來(lái)的圖像沒(méi)有遠(yuǎn)近之分史飞,而透視投影有尖昏;它們之間的聯(lián)系就是都要進(jìn)行裁剪剔除。實(shí)際上构资,投影轉(zhuǎn)換就是將視點(diǎn)坐標(biāo)系轉(zhuǎn)換成裁剪坐標(biāo)系抽诉,所以處于近、遠(yuǎn)裁剪面的梯行體外的部分都將被裁剪掉吐绵。最后這些轉(zhuǎn)換后的裁剪坐標(biāo)進(jìn)行歸一化設(shè)置迹淌,使得所有的坐標(biāo)值都在-1到1的范圍內(nèi),在這個(gè)階段坐標(biāo)仍然是三維的己单。

圖元裝配:前面經(jīng)過(guò)頂點(diǎn)變換后得到都只是單個(gè)頂點(diǎn)信息唉窃,在圖元裝配階段會(huì)根據(jù)頂點(diǎn)的序列和分類(lèi)信息將頂點(diǎn)裝配成幾何圖元。最后會(huì)產(chǎn)生一序列的三角形纹笼、線段和點(diǎn)纹份。如圖1.4的片段紋理映射和著色,最后到光柵化的階段廷痘。光柵化其實(shí)就是一個(gè)決定那些像素被幾何圖元覆蓋的過(guò)程蔓涧,屏幕在刷新的過(guò)程其實(shí)就是在像素不停地被覆蓋的過(guò)程。光柵化后笋额,一個(gè)圖元擁有的頂點(diǎn)數(shù)目和產(chǎn)生的片段之間沒(méi)有任何關(guān)系蠢笋。例如,一個(gè)由頂點(diǎn)組成的三角形可以占據(jù)整個(gè)屏幕而需要生成上百萬(wàn)個(gè)片段鳞陨。

片段和像素的區(qū)別:在光柵化階段會(huì)把每個(gè)幾何圖元(如三角形)所覆蓋的像素分解成像素大小的片段。而像素代表幀緩沖中某個(gè)指定位置的內(nèi)容瞻惋,如顏色厦滤、深度和其他與這個(gè)位置相關(guān)的值;片段即是經(jīng)過(guò)各種光柵化測(cè)試之后得到的將更新一個(gè)特定像素的潛在狀態(tài)歼狼。

光柵化操作:將屏幕空間的二維頂點(diǎn)轉(zhuǎn)換為屏幕上的像素掏导。這個(gè)階段會(huì)根據(jù)許多測(cè)試來(lái)檢查每個(gè)片段,這些測(cè)試包括剪切羽峰、透明度混合趟咆、模板和深度測(cè)試添瓷。這些測(cè)試過(guò)程會(huì)決定最后像素的位置、顏色值值纱,所以任何一項(xiàng)測(cè)試不通過(guò)這個(gè)片段就會(huì)被推起掉鳞贷。

雙緩沖機(jī)制:為了避免出現(xiàn)閃屏或卡幀的現(xiàn)象,GPU都采用了雙緩沖機(jī)制虐唠,一旦屏幕在后置緩沖器中繪制搀愧,后置緩沖器中的內(nèi)容就會(huì)不斷與顯示在屏幕上的前置緩沖器的內(nèi)容進(jìn)行交換。

Z緩沖器:也稱(chēng)深度緩沖器疆偿,前面提到的深度測(cè)試的過(guò)程也即是z緩沖器的處理過(guò)程咱筛。每個(gè)像素都存儲(chǔ)著一個(gè)Z值,這個(gè)Z值是圖元到虛擬相機(jī)之間的距離杆故。當(dāng)將一個(gè)圖元繪制成像素的時(shí)候迅箩,需要將像素位置處圖元Z值與Z緩沖器里的同一像素的Z值進(jìn)行比較。如果 新得到的Z值遠(yuǎn)遠(yuǎn)小于Z緩沖器中的Z值处铛,說(shuō)明這個(gè)圖元距離相機(jī)更近饲趋,因此也需要使用新得到的像素去更新當(dāng)前圖元的信息。反之罢缸,則圖元信息不變篙贸。注意這里提到的是像素的Z值,不是模型距離攝像機(jī)的距離Z枫疆,像素有可能是前面模型已有可能是后面模型進(jìn)行覆蓋的像素爵川。??? 當(dāng)圖元經(jīng)過(guò)以上這些變化之后,就可以在屏幕上看到圖像息楔。Z緩沖之所以重要寝贡,是因?yàn)閆值決定了物體之間的相互遮擋關(guān)系,如果沒(méi)有足夠的精度值依,則兩個(gè)相距很近的物體就會(huì)出現(xiàn)隨機(jī)遮擋的 現(xiàn)象圃泡。

透明度混合:為了繪制透明物體,通常需要對(duì)物體進(jìn)行排序愿险。首先颇蜡,繪制不透明的物體;然后辆亏,在不透明他物體的后面风秤,對(duì)透明物體按照由后到前的順序進(jìn)行混合處理。實(shí)時(shí)繪制中對(duì)于透明度分混合有一定的局限性扮叨,如缤弦,因?yàn)橥该鞫鹊暮穸葘?dǎo)致管線的逐步弱化和光線在物體內(nèi)的折射效果。如果按照任意序列會(huì)產(chǎn)生嚴(yán)重的失真彻磁,因此對(duì)于排序會(huì)使用Z緩沖碍沐。

模板緩沖:如果一個(gè)像素的模板緩沖中存放了1狸捅,則表示該像素對(duì)應(yīng)的空間處于陰影體中。所有模板緩沖通常都是處理陰影效果的累提。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末尘喝,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子刻恭,更是在濱河造成了極大的恐慌瞧省,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鳍贾,死亡現(xiàn)場(chǎng)離奇詭異鞍匾,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)骑科,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)橡淑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人咆爽,你說(shuō)我怎么就攤上這事梁棠。” “怎么了斗埂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵符糊,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我呛凶,道長(zhǎng)男娄,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任漾稀,我火速辦了婚禮模闲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘崭捍。我一直安慰自己尸折,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布殷蛇。 她就那樣靜靜地躺著实夹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粒梦。 梳的紋絲不亂的頭發(fā)上亮航,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音谍倦,去河邊找鬼。 笑死泪勒,一個(gè)胖子當(dāng)著我的面吹牛昼蛀,可吹牛的內(nèi)容都是我干的宴猾。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼叼旋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼仇哆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起夫植,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤讹剔,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后详民,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體延欠,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年沈跨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了由捎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡饿凛,死狀恐怖狞玛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涧窒,我是刑警寧澤心肪,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站纠吴,受9級(jí)特大地震影響硬鞍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呜象,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一膳凝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恭陡,春花似錦蹬音、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至拴疤,卻和暖如春永部,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呐矾。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工苔埋, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蜒犯。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓组橄,卻偏偏與公主長(zhǎng)得像荞膘,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子玉工,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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