1.專業(yè)名詞匯總

跳去目錄


著色器的渲染流程? ? (先過一遍流程椭员,有個概念)

頂點數(shù)據(jù) -> 頂點著色器 -> 細(xì)分著色器 -> 集合著色器 -> 圖元設(shè)置(裝配)-> 根據(jù)投影剪切 -> 光柵化 -> 片元著色器 -> 效果


上下文 【Context】

? ? ????context從本質(zhì)上來講是一個巨大的狀態(tài)機永淌,它記錄了關(guān)于圖形的各種狀態(tài)胆数,類比PS的話怒允,狀態(tài)機記錄了畫筆的顏色砰嘁,畫筆的像素點大小淑蔚,畫筆的種類市殷,當(dāng)點擊畫筆的時候,畫筆的屬性會自動被設(shè)置成狀態(tài)機所記錄下的屬性刹衫,從狹義上來說醋寝,狀態(tài)機就是記錄著很多工具的各種屬性。而OpenGL則有非常多的狀態(tài)带迟,保存這些狀態(tài)的狀態(tài)機就是context

? ? ? ? OpenGL的函數(shù)類似于C語言音羞,都是面向過程的函數(shù),對OpenGL對操作實際上是對OpenGL對某個狀態(tài)或某個工具進(jìn)行的操作仓犬,在后續(xù)開發(fā)中嗅绰,可以基于一定的環(huán)境,對OpenGL指令集進(jìn)行封裝搀继,便可以轉(zhuǎn)花紋面對對象對操作窘面,但OpenGL本身仍是面向過程的


渲染

????????將一張圖片或者控件或視頻顯示到屏幕上的過程,這個過程被稱為‘渲染’


頂點數(shù)組

? ? ? ? 在OpenGL中律歼,所有圖形都是由若干個三角形組成民镜,每個三角形會有三個頂點,每個頂點會有(x,y,z)3個坐標(biāo)

? ? ? ? OpenGL坐標(biāo)系中险毁,每個軸最大值為1制圈,最小值為-1们童,分別對應(yīng)屏幕的一端到另一端,屏幕正中心的坐標(biāo)為(0,0)

? ? ? ? 頂點數(shù)組是存儲于內(nèi)存中的


頂點緩沖區(qū)

? ? ? ? 為了使GPU更高效的工作鲸鹦,會將即將使用的頂點數(shù)組復(fù)制到GPU顯存中慧库,以便于GPU快速處理數(shù)據(jù),而存放這些頂點數(shù)據(jù)的區(qū)域則稱之為‘頂點緩沖區(qū)’


位圖

? ? ? ? 內(nèi)存并不能直接處理圖片(png\jepg)本身馋嗜,而是通過將圖片的每一個像素點的RGBA值進(jìn)行儲存齐板,以這種形式進(jìn)行儲存的圖片數(shù)據(jù)稱之為‘位圖’

? ? ? ? 位圖本身過于龐大,例如一張100*100像素位圖葛菇,會占用10000個像素點甘磨,每個像素點會占用R,G,B,A也就是4*8bit=4B(FF -> 1111 1111),10000個像素點會占用40000B(40KB)的內(nèi)存眯停,一張100*100的png一般在1kb~15kb(我把一張4k圖片暴力壓縮到100*100济舆,最后是14kb,png圖片會比jpg圖片更大一點)之間莺债,可見滋觉,位圖不適合用于儲存,因此齐邦,則需要壓縮后再進(jìn)行儲存椎侠,而再編程中若要使用圖片,則需要先解碼措拇,再渲染我纪。

? ? ? ? 一般所說的png或jpg是通過壓縮而來的。


映射

? ? ? ? 例如:由png轉(zhuǎn)換為位圖的過程中丐吓,會將圖片上的一個像素點轉(zhuǎn)換為屏幕上的像素點宣羊,這個過程稱之為 ‘映射’ (實際上,是頂點坐標(biāo)與紋理坐標(biāo)的映射)


管線

? ? ? ? 無論是png轉(zhuǎn)換為位圖后渲染汰蜘,或是位圖轉(zhuǎn)換為png進(jìn)行儲存,都有一條固定的流程之宿,這個過程是線性切不可逆的族操,那些特定的流程稱之為 ‘管線’


固定管線

? ? ? ? 在管線中,會有很多特定的流程比被,有些流程是可以進(jìn)行干預(yù)甚至修改內(nèi)部操作的(定制)色难,有些是不可以進(jìn)行操作的,這些不可以操作(只能傳入符合條件的值等缀,并得到特定的值枷莉,是不可修改的庫)的流程稱之為 ‘固定管線’,又稱之為 ‘固定著色器’


?可編程管線

? ? ? ? ? 相對于固定管線尺迂,那些可以進(jìn)行操作(編程笤妙、定制)的管線稱為 ‘固定管線’


著色器? 【Shader】

? ? ? ? 在編程中冒掌,一般我們所寫的 函數(shù)/方法 是CPU來進(jìn)行調(diào)用的,還有一些代碼是專門用于GPU來調(diào)用的蹲盘,這些代碼稱之為 ‘著色器’股毫,見百度詞條<著色器>


固定著色器

? ? ? ? OpenGL所提供的不可編程的著色器


自定義著色器

? ? ? ? 程序員基于GLSL語法來進(jìn)行開發(fā)(定制)的著色器

? ? ? ? 頂點著色器:用來處理頂點相關(guān)的著色器 1.確定位置,2.縮放/平移/旋轉(zhuǎn)召衔,3.3D圖形轉(zhuǎn)換為2D圖形投影換算

? ? ? ? 片元著色器(像素著色器):片元(其實是像素點)铃诬,用來處理片元相關(guān)的著色器,在CPU中是串行渲染片元苍凛,GPU中并行渲染像素點 (圖片的飽和度趣席、明度之類的效果變化是通過修改片元著色器來實現(xiàn)的)


GLSL (OpenGL Shading Language)

? ? ? ? GPU僅能識別由符合OpenGl標(biāo)準(zhǔn)的語言,這種語言稱之為GLSL? ? ? ??

? ? ? ? Metal并非基于OpenGL醇蝴,GLSL并不通用于Metal


光柵化

? ? ? ? 頂點著色器完成映射后宣肚,片元著色器開始工作(兩個頂點匯成線,三個頂點匯成三角形哑蔫,這個過程稱為 ‘圖元裝配’ )钉寝,而OpenGL僅支持點、線闸迷、三角形的映射嵌纲,映射完成后,可以確定線或者三角形區(qū)域中的像素點腥沽,這個過程稱之為光柵化逮走,之后由片元著色器對每個像素的顏色進(jìn)行計算臼勉,再通過光柵化將顏色附著上去

光柵化手繪

? ? 因此艰额,光柵化有兩個目的顿涣,1.確定片元像素點的位置每窖,2.附著顏色

? ? 光柵化是不可以進(jìn)行編程的? ? ? ??


?紋理

? ? ? ? 大多數(shù)情況下赐纱,紋理為位圖淮菠,其格式為.tga紋理文件

? ? ? ? 在OpenGL ES中衅金,圖片會直接轉(zhuǎn)換為位圖核芽,而不是紋理


混合

? ? ? ? 在圖片進(jìn)行疊加時妖谴,對疊加區(qū)域會有一個顯示的計算窿锉,這個計算行為稱之為 ‘混合’,這個計算是由OpenGL完成的


變換矩陣

? ? ? ? 在圖形進(jìn)行旋轉(zhuǎn)膝舅、縮放嗡载、平移時,主要是頂點數(shù)據(jù)的變化仍稀,而頂點數(shù)據(jù)的變化是根據(jù)線性代數(shù)來進(jìn)行的洼滚,基本公式為 點 * 矩陣 ,這里的矩陣稱之為 ‘變換矩陣’

? ? ? ? 變換矩陣主要針對頂點數(shù)組的變化


投影矩陣

? ? ? ? ?在3D圖形顯示在2D屏幕上時技潘,需要將3D坐標(biāo)轉(zhuǎn)換為2D坐標(biāo)遥巴,這個變換也是根據(jù)線性代數(shù)來進(jìn)行的千康,基本公式為 點*矩陣 , 這里的矩陣稱之為 ‘投影矩陣’

? ? ? ? 投影矩陣會涉及到3D效果轉(zhuǎn)2D時所有的像素點


坐標(biāo)系

? ? ? ? 2D笛卡爾坐標(biāo)系 x-y 坐標(biāo)系 百度百科<笛卡爾坐標(biāo)系>

? ? ? ? 3D笛卡爾坐標(biāo)系 x-y-z 坐標(biāo)系?百度百科<笛卡爾坐標(biāo)系>


視口

? ? ? ? 坐標(biāo)系對應(yīng)屏幕區(qū)域的范圍 百度百科<視口>

? ? ? ? 對于macos而言挪哄,視口為分辨率吧秕,分辨率越小,顯示的內(nèi)容越少迹炼,內(nèi)容越大


投影方式

? ? ? ? 1.正投影

? ? ? ? ? ? 標(biāo)準(zhǔn)正投影為 1.正視圖砸彬,2.側(cè)視圖, 3.俯視圖

? ? ? ? ? ? 具體效果為:遠(yuǎn)近一樣大

? ? ? ? ? ? 一般用來顯示2D效果的

? ? ? ? 2.透視投影

? ? ? ? ? ? 具體效果為:遠(yuǎn)小近大

? ? ? ? ? ? 一般用來顯示3D效果的


其他坐標(biāo)系

? ? ? ? 觀察者坐標(biāo)系 將人眼作為Camera斯入,人眼機位觀察者坐標(biāo)系的原點

? ? ? ? 物體坐標(biāo)系 物體本身具有各種屬性砂碉,用來表達(dá)這些屬性的匯總即為物體坐標(biāo)系

? ? ? ? 世界坐標(biāo)系 將地球比做世界,經(jīng)緯度即地底深度及海拔即為世界坐標(biāo)系


著色器的渲染流程 (最后溫習(xí)一下)

? ? ? ? 頂點數(shù)據(jù) -> 頂點著色器 -> 細(xì)分著色器 -> 集合著色器 -> 圖元設(shè)置(裝配)-> 根據(jù)投影剪切 -> 光柵化 -> 片元著色器 -> 效果


(還不完善刻两,后續(xù)涉及到相關(guān)專業(yè)名詞時進(jìn)行調(diào)整及補充...)


跳去目錄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末增蹭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子磅摹,更是在濱河造成了極大的恐慌滋迈,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件户誓,死亡現(xiàn)場離奇詭異饼灿,居然都是意外死亡,警方通過查閱死者的電腦和手機帝美,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門碍彭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人悼潭,你說我怎么就攤上這事庇忌。” “怎么了舰褪?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵皆疹,是天一觀的道長。 經(jīng)常有香客問我占拍,道長墙基,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任刷喜,我火速辦了婚禮,結(jié)果婚禮上立砸,老公的妹妹穿的比我還像新娘掖疮。我一直安慰自己,他們只是感情好颗祝,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布浊闪。 她就那樣靜靜地躺著恼布,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搁宾。 梳的紋絲不亂的頭發(fā)上折汞,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機與錄音盖腿,去河邊找鬼爽待。 笑死,一個胖子當(dāng)著我的面吹牛翩腐,可吹牛的內(nèi)容都是我干的鸟款。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼茂卦,長吁一口氣:“原來是場噩夢啊……” “哼何什!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起等龙,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤处渣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蛛砰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體罐栈,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年暴备,在試婚紗的時候發(fā)現(xiàn)自己被綠了悠瞬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡涯捻,死狀恐怖浅妆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情障癌,我是刑警寧澤凌外,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站涛浙,受9級特大地震影響康辑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜轿亮,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一疮薇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧我注,春花似錦按咒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽智袭。三九已至,卻和暖如春掠抬,著一層夾襖步出監(jiān)牢的瞬間吼野,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工两波, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瞳步,地道東北人。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓雨女,卻偏偏與公主長得像谚攒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子氛堕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348