OpenGL-UseStockShader(固定管線/存儲著色器)使用

在OpenGL 3.1之前蓖议,只有一種固定管線著色器窃页,而在3.1之后被啟用晌杰,取而代之的是可編程管線.

初始化

GLShaderManager shaderManager;
shaderManager.InitializeStockShaders();

設(shè)置存儲器的類型:
函數(shù)原型:GLint UseStockShader(GLT_STOCK_SHADER nShaderID, ...);

類型說明

enum GLT_STOCK_SHADER {
    GLT_SHADER_IDENTITY = 0,
    GLT_SHADER_FLAT,
    GLT_SHADER_SHADED,
    GLT_SHADER_DEFAULT_LIGHT,
    GLT_SHADER_POINT_LIGHT_DIFF,
    GLT_SHADER_TEXTURE_REPLACE,
    GLT_SHADER_TEXTURE_MODULATE,
    GLT_SHADER_TEXTURE_POINT_LIGHT_DIFF,
    GLT_SHADER_TEXTURE_RECT_REPLACE,
    GLT_SHADER_LAST
};

1.單位著色器/單元著色器: GLT_SHADER_IDENTITY

在坐標(biāo)范圍為(-1.0翼悴, 1.0)內(nèi)刁赦,所有片段都應(yīng)用同一種顏色全度。
參數(shù)1:著色器類型
? 參數(shù)2:顏色參數(shù)

shaderManager.UserStockShader(GLT_SHADER_IDENTITY,GLfloat vColor[4]);
2.平面著色器:GLT_SHADER_FLAT

可以為幾何圖形變化指定一個44變換矩陣煮剧,該矩陣被稱為“模型視圖投影矩陣”。
參數(shù)1:著色器類型
??參數(shù)2:4
4變換矩陣
??參數(shù)3:顏色參數(shù)

shaderManager.UserStockShader(GLT_SHADER_FLAT,GLfloat mvp[16],GLfloat vColor[4]);

3.上色著色器:GLT_SHADER_SHADED

將顏色平滑的插入到頂點(diǎn)之間将鸵,進(jìn)行平滑著色勉盅。
參數(shù)1:著色器類型
??參數(shù)2:顏色參數(shù)

shaderManager.UserStockShader(GLT_SHADER_SHADED,GLfloat vColor[4]);

4.默認(rèn)光源著色器:GLT_SHADER_DEFAULT_LIGHT

為圖形產(chǎn)生陰影和光照效果。
參數(shù)1:著色器類型
??參數(shù)2:模型視圖矩陣
??參數(shù)3:投影矩陣
??參數(shù)4:顏色參數(shù)

shaderManager.UserStockShader(GLT_SHADER_DEFAULT_LIGHT,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vColor[4]);

5.點(diǎn)光源著色器:GLT_SHADER_POINT_LIGHT_DIFF

為圖形產(chǎn)生陰影和光照效果顶掉。與默認(rèn)光源著色器非常類似草娜,區(qū)別在與點(diǎn)光源著色器可以指定光源位置。
參數(shù)1:著色器類型
??參數(shù)2:模型視圖矩陣
??參數(shù)3:投影矩陣
??參數(shù)4:視點(diǎn)坐標(biāo)光源位置
??參數(shù)5:顏色參數(shù)

shaderManager.UserStockShader(GLT_SHADER_DEFAULT_LIGHT,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vColor[4]);

6.紋理替換矩陣著色器:GLT_SHADER_TEXTURE_REPLACE

通過給定的模型視圖投影矩陣痒筒,使用紋理單元來進(jìn)行填充宰闰,其每個像素點(diǎn)的顏色是從紋理中獲取。
參數(shù)1:著色器類型
??參數(shù)2:模型視圖矩陣
??參數(shù)3:紋理單元

shaderManager.UserStockShader(GLT_SHADER_TEXTURE_REPLACE,GLfloat mvMatrix[16],GLint nTextureUnit);

7.紋理調(diào)整著色器:GLT_SHADER_TEXTURE_MODULATE

通過給定的模型視圖投影矩陣簿透,將一個基本色乘以一個取自紋理單元nTextureUnit的紋理移袍,將顏色與紋理進(jìn)行混合后填充到片段中。
參數(shù)1:著色器類型
??參數(shù)2:模型視圖矩陣
??參數(shù)3:顏色參數(shù)
??參數(shù)4:紋理單元

shaderManager.UserStockShader(GLT_SHADER_TEXTURE_MODULATE,GLfloat mvMatrix[16],GLfloat vColor[4],GLint nTextureUnit);

8.紋理光源著色器:GLT_SHADER_TEXTURE_POINT_LIGHT_DIFF

通過給定的模型視圖投影矩陣老充,將一個紋理通過漫反射照明計算進(jìn)行調(diào)整(相乘)葡盗。
參數(shù)1:著色器類型
??參數(shù)2:模型視圖矩陣

參數(shù)3:視覺空間中的光源位置
??參數(shù)4:幾何圖形的基本色
??參數(shù)5:需要處理的紋理單元

shaderManager.UserStockShader(GLT_SHADER_TEXTURE_POINT_LIGHT_DIEF,GLfloat mvMatrix[16],GLfloat pMatrix[16],GLfloat vLightPos[3],GLfloat vBaseColor[4],GLint nTextureUnit);

GLShaderManager 預(yù)定義的標(biāo)識符

標(biāo)識符 描述
GLT_ATTRIBUTE_VERTEX 3分量(x, y, z)頂點(diǎn)位置
GLT_ATTRIBUTE_COLOR 4分量(r, g, b, a)顏色值
GLT_ATTRIBUTE_NORMAL 3分量(x, y, z)表面法線
GLT_ATTRIBUTE_TEXTURE0 第一對 2 分量(s ,t)紋理坐標(biāo)
GLT_ATTRIBUTE_TEXTURE1 第二對 2 分量(s ,t)紋理坐標(biāo)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市啡浊,隨后出現(xiàn)的幾起案子觅够,更是在濱河造成了極大的恐慌胶背,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喘先,死亡現(xiàn)場離奇詭異钳吟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)苹祟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門砸抛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人树枫,你說我怎么就攤上這事直焙。” “怎么了砂轻?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵奔誓,是天一觀的道長。 經(jīng)常有香客問我搔涝,道長厨喂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任庄呈,我火速辦了婚禮蜕煌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘诬留。我一直安慰自己斜纪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布文兑。 她就那樣靜靜地躺著盒刚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绿贞。 梳的紋絲不亂的頭發(fā)上因块,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機(jī)與錄音籍铁,去河邊找鬼涡上。 笑死,一個胖子當(dāng)著我的面吹牛拒名,可吹牛的內(nèi)容都是我干的吓懈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼靡狞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了隔嫡?” 一聲冷哼從身側(cè)響起甸怕,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤甘穿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后梢杭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體温兼,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年武契,在試婚紗的時候發(fā)現(xiàn)自己被綠了募判。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡咒唆,死狀恐怖届垫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情全释,我是刑警寧澤装处,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站浸船,受9級特大地震影響妄迁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜李命,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一登淘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧封字,春花似錦黔州、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至仿耽,卻和暖如春合冀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背项贺。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工君躺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人开缎。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓棕叫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親奕删。 傳聞我的和親對象是個殘疾皇子俺泣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355