最近接觸了大量的GLSL語言生成的動畫效果,整理一下它的基礎知識作為參考。
vec2, vec3, vec4 n維浮點數向量
mat2, mat3, mat4 2x2, 3x3, 4x4 浮點數矩陣
sampler2D 2D紋理
向量的分量訪問:
vector。xyzw 代表了一個空間座標(x,y,z,w)
vector。rgba 代表了一個顏色(r,g,b,a)
vector。stpq 代表了一個紋理座標(s,t,p,q)
變數限定符
attribute 只能存在於vertex shader中,一般用於儲存頂點或法線資料,它可以在資料緩衝區中讀取資料
uniform 在執行時shader無法改變uniform變數, 一般用來放置程式傳遞給shader的變換矩陣,材質,光照引數等等。
varying 主要負責在vertex 和 fragment 之間傳遞變數
6。 內建的特殊變數
頂點著色器中output型別的內建變數
gl_Position: 放置頂點座標資訊 (vec4)
gl_PointSize 需要繪製點的大小 (float)
片元著色器中input型別的內建變數
gl_FragCoord: 片元在framebuffer畫面的相對位置 (vec4)
gl_PointCoord: 經過插值計算後的紋理座標,點的範圍是0。0到1。0 (vec2)
片元著色器中output型別的內建變數
gl_FragColor: 設定當前片點的顏色 (vec4)
7。 內建函式庫
floor(T x) 返回
ceil(T x) 返回>=x 的最小整數
fract(T x) 返回x的小數部分
T clamp(T x, T minVal, T maxVal) min(max(x, minVal), maxVal),返回值被限定在 minVal,maxVal之間
T mix(T x, T y, T a) 取x,y的線性混合,x*(1-a)+y*a
T step(T edge, T x) 如果 x
猜你喜歡
- 2021-07-17車子的燃油濾芯可以是用多久,是否需要定期更換?
- 2021-07-06糖尿病能吃粉條嗎?粉條含糖高不高?
- 2021-07-05千元機不要亂買,這3款堪稱低價高配,王者吃雞毫無壓力
- 2021-04-25多層感知器的SPSS操作
- 2021-04-24哪些因素會影響男性和女性精神分裂症的發病年齡?「研究速遞」