Opengl es2.0 學習筆記(四)shader語法 GLSL
阿新 • • 發佈:2018-12-21
一、變數
GLSL的變數命名方式與C語言類似。變數的名稱可以使用字母,數字以及下劃線,但變數名不能以數字開頭,還有變數名不能以gl_作為字首,這個是GLSL保留的字首,用於GLSL的內部變數。當然還有一些GLSL保留的名稱是不能夠作為變數的名稱的。
二、基本型別
除了布林型,整型,浮點型基本型別外,GLSL還引入了一些在著色器中經常用到的型別作為基本型別。這些基本型別都可以作為結構體內部的型別。如下表:
型別 | 描述 |
---|---|
void | 跟C語言的void類似,表示空型別。作為函式的返回型別,表示這個函式不返回值。 |
bool | 布林型別,可以是true 和false,以及可以產生布爾型的表示式。 |
int | 整型 代表至少包含16位的有符號的整數。可以是十進位制的,十六進位制的,八進位制的。 |
float | 浮點型 |
bvec2 | 包含2個布林成分的向量 |
bvec3 | 包含3個布林成分的向量 |
bvec4 | 包含4個布林成分的向量 |
ivec2 | 包含2個整型成分的向量 |
ivec3 | 包含3個整型成分的向量 |
ivec4 | 包含4個整型成分的向量 |
mat2 或者 mat2x2 | 2×2的浮點數矩陣型別 |
mat3或者mat3x3 | 3×3的浮點數矩陣型別 |
mat4x4 | 4×4的浮點矩陣 |
mat2x3 | 2列3行的浮點矩陣(OpenGL的矩陣是列主順序的) |
mat2x4 | 2列4行的浮點矩陣 |
mat3x2 | 3列2行的浮點矩陣 |
mat3x4 | 3列4行的浮點矩陣 |
mat4x2 | 4列2行的浮點矩陣 |
mat4x3 | 4列3行的浮點矩陣 |
sampler1D | 用於內建的紋理函式中引用指定的1D紋理的控制代碼。只可以作為一致變數或者函式引數使用 |
sampler2D | 二維紋理控制代碼 |
sampler3D | 三維紋理控制代碼 |
samplerCube | cube map紋理控制代碼 |
sampler1DShadow | 一維深度紋理控制代碼 |
sampler2DShadow | 二維深度紋理控制代碼 |
三、結構體
結構體可以組合基本型別和陣列來形成使用者自定義的型別。在定義一個結構體的同時,你可以定義一個結構體例項。或者後面再定義。
四、陣列
五、修飾符
六、內建變數
七、操作符
八、陣列訪問
九、建構函式
十、成分選擇
十一、控制流
十二、函式
內建函式列表: