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

2021-09-24 06:47:52 字數 1356 閱讀 7009

接下來我們一起來看一下webgl中的幾何函式於矩陣函式

第乙個幾何函式:float length(float x)

此函式會返回向量x的長度

第二個幾何函式:float distance(float p0, float p1)

此函式會返回p0和p1之間的距離,也就是length(p0-p1)

第三個幾何函式:float dot(float x, float y)

此函式會返回x和y的點積,也就是向量中每乙個點的乘積相加。

例如a向量為(x1, y1),b向量(x2, y2)那麼dot(a, b)就會返回x1*x2+y1*y2

第四個幾何函式:vec3 cross(vec3 x, vec3 y)

值得注意的是此函式只允許輸入的變數為兩個vec3型別,並且會返回乙個vec3型別的值,舉個例子:

第乙個引數a(x0, x1, x2),第二個引數b(y0, y1, y2)

result[0]=x[1]*y[2]-y[1]*x[2]

result[1]=x[2]*y[0]-y[2]*x[0]

result[2]=x[0]*y[1]-y[0]*x[1]

第五個幾何函式:float normalize(float x)

此函式會對x進行歸一化,保持向量方向不變但長度為1

第六個集合函式:float faceforward(float n, float i, float nref) 此函式是法向量反向操作,根據入射向量n和參考向量nref來調整法向量。

如果dot(nref, i)<0則返回n,否則返回-n

第七個幾何函式:float reflect(float i, float n)

此函式會計算反射向量。入射向量為i,表面的法向量是n,返回i-2*dot(n, i)*n 需要注意的是此處的n必須已經被歸一化

第八個幾何函式:float refract(float i, float n, float eta)

根據入射光和介質特性計算折射現象。入射光方向為i,表面法向量為n,介質的折射率為eta,返回被折射後的光線方向。

上面八個幾何函式是不是越看到後面的感覺越高深呢?

webgl中的內建函式只提供了乙個矩陣函式,我們一起來看一下

我們知道矩陣一般是不會是float,vec2,vec3,vec4型別的,因此呢,矩陣的函式輸入的都是矩陣型別的引數也就是mat2,mat3,mat4型別的。

mat2 matrixcompmult(mat2 x, mat2 y)

此函式會將矩陣x和矩陣y逐元素想乘

這個函式對於矩陣的操作還是很方便的

ok以上就是webgl內建函式中的幾何函式和矩陣函式

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

現在我們一起來看一下向量函式都有那些 第乙個向量函式 bvec2 lessthan vec2 x,vec2 y 此函式會逐分量的比較x第三個向量函式 bvec2 greaterthan vec2 x,vec2 y 此函式會逐分量的比較x y是否成立 第四個向量函式 bvec2 greatethane...

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...