webgl内置函数--几何函数与矩阵函数

本文详细介绍了WebGL中的八个内置几何函数,包括长度、距离、点积、叉积、归一化、法向量反向、反射及折射计算,以及一个矩阵函数——矩阵元素相乘。这些函数是实现3D图形渲染的重要工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接下来我们一起来看一下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内置函数中的几何函数和矩阵函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值