引言
shader到底是干什么用的?shader的工作原理是什么?
其實(shí)當(dāng)我們對這個(gè)問題還很懵懂的時(shí)候,就已經(jīng)開始急不可耐的要四處搜尋有關(guān)shader的資料,恨不得立刻上手寫一個(gè)出來。但看了一些資料甚至看了不少cg的語法之后,我們還是很迷茫,UNITY_MATRIX_MVP到底是個(gè)什么矩陣?它和v.vertex相乘出來的又是什么玩意?當(dāng)這些問題困擾我們很久之后,我們才發(fā)現(xiàn),原來我們是站在浮沙上筑高臺,根基都沒有打牢當(dāng)然不可能蓋得起高樓大廈了。
那根基是什么呢?大牛曰,計(jì)算機(jī)圖形學(xué)。
shader中文名叫著色器,顧名思義,它的作用可以先簡單理解為給屏幕上的物體畫上顏色。而什么東西負(fù)責(zé)給屏幕上畫顏色?當(dāng)然是GPU,所以我們寫shader的目的就是告訴GPU往屏幕哪里畫、怎么畫。說到這其實(shí)大家應(yīng)該很明白了,如果我們連GPU的工作原理都不知道,何談指揮它?
說到計(jì)算機(jī)圖形學(xué),包括我在內(nèi)很多同學(xué)都非常害怕它,因?yàn)槔锩姘烁鞣N艱深的理論、變換,大量的公式什么的。其實(shí)我們大可不必一開始就嚇倒自己,先從基本概念開始,慢慢來,總有一天我們也會(huì)成為大牛~!
最后,這篇文章不算是原創(chuàng),最多算是摘要+讀后感,很多概念性文字都是我從書里搬過來后再加上自己的理解,算是和大家一起學(xué)習(xí),有理解不當(dāng)之處還請多多指教。
廢話不多說,讓我們來進(jìn)入第一章的學(xué)習(xí),GPU的渲染管線。
正文
所謂GPU的渲染管線,聽起來好像很高深的樣子,其實(shí)我們可以把它理解為一個(gè)流程,就是我們告訴GPU一堆數(shù)據(jù),最后得出來一副二維圖像,而這些數(shù)據(jù)就包括了”視點(diǎn)、三維物體、光源、照明模型、紋理”等元素。
在各種圖形學(xué)的書中,渲染管線主要分為三個(gè)階段:應(yīng)用程序階段、幾何階段、光柵階段。
1,應(yīng)用程序階段。
這個(gè)階段相對比較好理解,就比如我們在Unity里開發(fā)了一個(gè)游戲,其實(shí)很多底層的東西Unity都幫我們實(shí)現(xiàn)好了,例如碰撞檢測、視錐剪裁等等,這個(gè)階段主要是和CPU、內(nèi)存打交道,在把該計(jì)算的都計(jì)算完以后,在這個(gè)階段的末端,這些計(jì)算好的數(shù)據(jù)(頂點(diǎn)坐標(biāo)、法向量、紋理坐標(biāo)、紋理)就會(huì)通過數(shù)據(jù)總線傳給圖形硬件,作為我們進(jìn)一步處理的源數(shù)據(jù)。
2,幾何階段。
主要負(fù)責(zé)頂點(diǎn)坐標(biāo)變換、光照、裁剪、投影以及屏幕映射,改階段基于GPU進(jìn)行運(yùn)算,在該階段的末端得到了經(jīng)過變換和投影之后的頂點(diǎn)坐標(biāo)、顏色、以及紋理坐標(biāo)。簡而言之,幾何階段的主要工作就是“變換三維頂點(diǎn)坐標(biāo)”和“光照計(jì)算”。
問題隨之而來,為什么要變換頂點(diǎn)坐標(biāo)?我是這么理解的,比如你有一個(gè)三維游戲場景,場景中的每個(gè)模型都可以用一個(gè)向量來確定它的位置,但如何讓計(jì)算機(jī)根據(jù)這些坐標(biāo)把模型正確的、有層次的畫在屏幕上?這就是我們需要變換三維頂點(diǎn)坐標(biāo)的原因,最終目的就是讓GPU可以將這些三維數(shù)據(jù)繪制到二維屏幕上。
根據(jù)頂點(diǎn)坐標(biāo)變換的先后順序,主要有如下幾個(gè)坐標(biāo)空間:Object space,模型坐標(biāo)空間;World space,世界坐標(biāo)空間;Eye space,觀察坐標(biāo)空間;Clip and Project space,屏幕坐標(biāo)空間。下圖就是GPU的整個(gè)處理流程,深色區(qū)域就是頂點(diǎn)坐標(biāo)空間的變換流程,大家了解一下即可,我們需要關(guān)注的是每個(gè)坐標(biāo)空間的具體含義和坐標(biāo)空間之間轉(zhuǎn)換的方法。
圖片:image1.png

創(chuàng)新互聯(lián)公司專注于企業(yè)
網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、豐臺網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、
H5高端網(wǎng)站建設(shè)、
成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為豐臺等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享名稱:[Unity3d]Shader著色器學(xué)習(xí)前了解知識-創(chuàng)新互聯(lián)
文章出自:http://www.rwnh.cn/article6/doecog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、域名注冊、商城網(wǎng)站、虛擬主機(jī)、定制開發(fā)、自適應(yīng)網(wǎng)站
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)