opengl 向量vec3与float的GLSL和

gg0vcinb  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(176)

这可能很奇怪,因为我知道矢量和标量不能相加。但是我找到了这个例子,在第157行,它做了以下运算:

hsv.x + vec3(0.,2./3.,1./3.)

其中hsv.x恰好是一个float数字,该值来自鼠标的X坐标,其余的是vec3
我的问题是,手术的结果是什么?

irlmq6kh

irlmq6kh1#

如果您将标量添加到向量,则标量将被添加到向量的每个分量,因为The OpenGL Shading Language规范(版本4.6,第5章“运算符和表达式”)指出:
一个操作数是标量,另一个操作数是向量或矩阵。在这种情况下,标量运算独立地应用于向量或矩阵的每个分量,从而产生大小相同的向量或矩阵。

相关问题