webgl內建函式--向量函式與紋理查詢函式

psychewang發表於2018-10-23

現在我們一起來看一下向量函式都有那些

第一個向量函式:bvec2 lessThan(vec2 x, vec2 y)
此函式會逐分量的比較x<y是否成立,並且將返回值儲存在布林型別的bvec2中
第二個向量函式:bvec2 lessThanEqual(vec2 x, vec2 y)
此函式會逐分量的比較x<=y是否成立,返回值於第一個向量函式相同

第三個向量函式:bvec2 greaterThan(vec2 x, vec2 y)
此函式會逐分量的比較x>y是否成立

第四個向量函式:bvec2 greateThanEqual(vec2 x, vec2 y)
此函式會逐分量的比較x>=y是否成立

第五個向量函式:bvec2 equal(vec2 x, vec2 y)
此函式會逐分量的比較x==y是否成立

第六個向量函式:bvec2 notEqual(vec2 x, vec2 y)
此函式會逐分量的比較x!=y是否成立

第七個向量函式:bool any(bvec2 x)
此函式會判斷x向量的任意分量為true,如果是的話就返回true

第八個向量函式:bool all(bvec2 x)
此函式會判斷x向量的所有分量都為true,如果是的話就返回true

第九個向量函式:bvec2 not(bvec2 x)
此函式會將x向量逐分量的邏輯補運算

最後一種內建函式就是紋理查詢函式了
我會把這種函式的全部應用列舉出來方便你檢視

vec4 texture2D(sampler2D sampler, vec2 coord)
vec4 texture2D(sampler2D sampler, vec2 coord, float bias)

vec4 texture2DProj(sampler2D sampler, vec3 coord)
vec4 texture2DProj(sampler2D sampler, vec3 coord, float bias)

vec4 texture2DProj(sampler2D sampler, vec4 coord)
vec4 texture2DProj(sampler2D sampler, vec4 coord, float bias)

vec4 texture2DLod(sampler2D sampler, vec2 coord, float lod)
vec4 texture2DProjLod(sampler2D sampler, vec3 coord, float lod)
vec4 texture2DProjLod(sampler2D sampler, vec4 coord, float lod)

上面的這集中紋理函式會使用紋理座標coord,從當前繫結到sampler的二維紋理中讀取對應的紋素。對於投影版本(帶有Proj的),紋理座標將從coord的最後一個分量中解析出來,而vec4型別的coord的第3個分量將被忽略。引數bias只可在片元著色器中使用,它表示在sample是MIPMAP紋理時,加在當前lod上的值。

vec4 textureCube(samplerCube sampler, vec3 coord)
vec4 textureCube(samplerCube sampler, vec3 coord, float bias)
vec4 textureCubeLod(samplerCube sampler, vec3 coord, float lod)
這三個函式會使用紋理座標coord,從繫結到sampler的立方體紋理中讀取響應紋素。coord的方向可用來指定立方體紋理的表面。

好了以上就是webgl中的所有內建函式了,可能這些函式這樣表達出來感覺沒有什麼太大的意義,沒事重頭戲在後面呢,以後我會將一些有意思的webgl實踐知識分享出來的。

相關文章