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

2021-09-24 06:47:52 字數 1796 閱讀 7899

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

第乙個向量函式:bvec2 lessthan(vec2 x, vec2 y)

此函式會逐分量的比較x第三個向量函式: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實踐知識分享出來的。

webgl內建函式 幾何函式與矩陣函式

接下來我們一起來看一下webgl中的幾何函式於矩陣函式 第乙個幾何函式 float length float x 此函式會返回向量x的長度 第二個幾何函式 float distance float p0,float p1 此函式會返回p0和p1之間的距離,也就是length p0 p1 第三個幾何函...

webgl內建函式 角度和三角函式

當我們在使用webgl的時候或多或少的都會使用到webgl的一些內建函式。那有些人就會說了,不用內建函式,自己寫不可以嗎?答案當然是可以的,但是為什麼還要使用內建函式呢?因為方便,快捷,穩定 我們在編寫動態效果的時候可能需要將角度和弧度進行相互轉換,webgl提供了兩個函式供我們來使用。float ...

匿名函式與內建函式

lambda python允許使用lambda關鍵字創造匿名函式 匿名是因為不需要一標準的def方式來宣告 乙個完整的lambda 語句 代表了乙個表示式,這個表示式的定義必須和宣告放在同一行 a lambda x,y x y print a 2,3 5 filter filter func,seq...