OpenGL ES _ 入門_01
OpenGL ES _ 入門_02
OpenGL ES _ 入門_03
OpenGL ES _ 入門_04
OpenGL ES _ 入門_05
OpenGL ES _ 入門練習(xí)_01
OpenGL ES _ 入門練習(xí)_02
OpenGL ES _ 入門練習(xí)_03
OpenGL ES _ 入門練習(xí)_04
OpenGL ES _ 入門練習(xí)_05
OpenGL ES _ 入門練習(xí)_06
OpenGL ES _ 著色器 _ 介紹
OpenGL ES _ 著色器 _ 程序
OpenGL ES _ 著色器 _ 語(yǔ)法
OpenGL ES_著色器_紋理圖像
OpenGL ES_著色器_預(yù)處理
OpenGL ES_著色器_頂點(diǎn)著色器詳解
OpenGL ES_著色器_片斷著色器詳解
OpenGL ES_著色器_實(shí)戰(zhàn)01
OpenGL ES_著色器_實(shí)戰(zhàn)02
OpenGL ES_著色器_實(shí)戰(zhàn)03
著色器語(yǔ)言(OpenGL Shading Language) ,GLSL是著色器語(yǔ)言的通稱,是一門編程語(yǔ)言污秆,用于創(chuàng)建做編程的著色器英支,OpenGL 著色器語(yǔ)言允許應(yīng)用程序顯示的指定在處理頂點(diǎn)和片段時(shí)所指定的操作.
學(xué)習(xí)目標(biāo)
理解使用OpenGL 2.0 著色器語(yǔ)言編寫的可編程著色器的結(jié)構(gòu)和內(nèi)容
OpenGL 圖像管線和可編程著色器
OpenGL 操作分為兩個(gè)部分,第一部分對(duì)頂點(diǎn)進(jìn)行處理,第二部分對(duì)片段進(jìn)行處理。這些操作可以通過(guò)代碼進(jìn)行控制烁焙,但是程序內(nèi)部的執(zhí)行順序不能進(jìn)行控制衣屏,這種操作模式被稱為"固定功能的管線".
-
頂點(diǎn)數(shù)據(jù)
先上一張圖了解一下頂點(diǎn)處理過(guò)程
當(dāng)OpenGL 使用固定功能的管線處理頂點(diǎn)的時(shí)候,它負(fù)責(zé)提供下面的值酝静,主要用于后面的柵格化處理:
1.視覺(jué)空間坐標(biāo)
2.主顏色和輔助顏色
3.紋理坐標(biāo)
4.霧坐標(biāo)
5.點(diǎn)的大小
<p>
頂點(diǎn)管線可能不會(huì)對(duì)上面所有的值進(jìn)行更新节榜,這些值都是應(yīng)用程序根據(jù)glVertex()* 和 其他頂點(diǎn)數(shù)據(jù)調(diào)用所輸入的數(shù)據(jù)進(jìn)行計(jì)算的.
頂點(diǎn)著色器不是代替了所有的頂點(diǎn)管線中的操作,在頂點(diǎn)著色器執(zhí)行完之后别智,下面的操作仍然可以出現(xiàn):
1.透視除法
2.窗口映射
3.圖元裝配
4.平截頭(視景體)和用戶裁剪
5.背面剔除
6.雙面光照選擇
7.多變形模式處理
8.多變形偏移
9.深度范圍截取 片段處理
同樣先上一張圖宗苍,方便大家理解
片段著色器可以處理的操作有:
1.提取紋理單元,用于紋理貼圖
2.紋理應(yīng)用
3.霧
4.主色和輔助色顏色混合
提示:無(wú)論是否使用片段著色器薄榛,OpenGL 總是會(huì)執(zhí)行下面的操作:
5.單調(diào)或平滑著色
6.像素覆蓋計(jì)算
7.像素所有權(quán)測(cè)試
8.裁剪操作
9.點(diǎn)畫模式應(yīng)用(OpenGL 3.1 已經(jīng)刪除掉了)
10.alpha 測(cè)試(OPenGL 3.2 已經(jīng)刪除了)
11.深度計(jì)算
12.模板測(cè)試
13.alpha 測(cè)試
14.對(duì)像素進(jìn)行邏輯操作
15.顏色值得抖動(dòng)
16.顏色掩碼操作
總結(jié)
主要介紹了著色器語(yǔ)言是干神馬的讳窟,以及頂點(diǎn)著色器和片段著色器的作用,下一節(jié)敞恋,我們將進(jìn)行語(yǔ)法學(xué)習(xí)丽啡!
參考:《OpenGL 編程指南》