1. 程式人生 > >Opengl es2.0 學習筆記(四)shader語法 GLSL

Opengl es2.0 學習筆記(四)shader語法 GLSL

一、變數

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 二維深度紋理控制代碼

三、結構體

結構體可以組合基本型別和陣列來形成使用者自定義的型別。在定義一個結構體的同時,你可以定義一個結構體例項。或者後面再定義。

四、陣列

五、修飾符

六、內建變數

七、操作符

八、陣列訪問

九、建構函式

十、成分選擇

十一、控制流

十二、函式

內建函式列表:
在這裡插入圖片描述