必威电竞|足球世界杯竞猜平台

GLSL
來(lái)源:互聯(lián)網(wǎng)

OpenGL著色語(yǔ)言(OpenGL Shading Language)是用來(lái)在OpenGL中著色編程的語(yǔ)言,也即開(kāi)發(fā)人員寫的短小的自定義程序,他們是在圖形卡的GPU (Graphic Processor Unit圖形處理單元)上執(zhí)行的,代替了固定的渲染管線的一部分,使渲染管線中不同層次具有可編程性。比如:視圖轉(zhuǎn)換、投影轉(zhuǎn)換等。GLSL(GL Shading Language)的著色器代碼分成2個(gè)部分:Vertex Shader(頂點(diǎn)著色器)和Fragment(片斷著色器),有時(shí)還會(huì)有Geometry Shader(幾何著色器)。負(fù)責(zé)運(yùn)行頂點(diǎn)著色的是頂點(diǎn)著色器。它可以得到當(dāng)前OpenGL 中的狀態(tài),GLSL內(nèi)置變量進(jìn)行傳遞。GLSL其使用c語(yǔ)言作為基礎(chǔ)高階著色語(yǔ)言,避免了使用匯編語(yǔ)言或硬件規(guī)格語(yǔ)言的復(fù)雜性。

簡(jiǎn)介

由于我們可以將GLSL著色器所寫的代碼直接作為長(zhǎng)字符串資源放進(jìn)應(yīng)用程序中。所以,我們可以在記事本中描寫我們的著色器代碼。

工作

頂點(diǎn)著色器主要的工作是:

1. 利用視圖和投影矩陣對(duì)點(diǎn)的位置進(jìn)行變化

2. 如果需要利用法線的時(shí)候,也同樣需要利用視圖矩陣對(duì)其進(jìn)行轉(zhuǎn)換

3. 紋理坐標(biāo)的產(chǎn)生和轉(zhuǎn)換

4. 頂點(diǎn)的光照或者象素光照的計(jì)算

5. 顏色計(jì)算

并不是所有的工作都需要做,只需根據(jù)自己的需要進(jìn)行不同的編寫。負(fù)責(zé)運(yùn)行頂點(diǎn)著色的是頂點(diǎn)著色器。它可以得到當(dāng)前OpenGL 中的狀態(tài),GLSL內(nèi)置變量進(jìn)行傳遞。比如gl_ProjectionMatrix(投影變換矩陣)、gl_ModelViewMatrix(視圖變換矩陣)、gl_Vertex、gl_Color、gl_Frontcolor、gl_Normal等;而這些又是根據(jù)OpenGL應(yīng)用程序傳遞諸如頂點(diǎn)位置、顏色、法線等信息。

參考資料 >

生活家百科家居網(wǎng)