GLSL总和的矢量vec3和浮动

时间:2017-08-04 06:48:58

标签: opengl vector glsl scalar

这可能很奇怪,因为据我所知,矢量和标量无法添加。但是,我发现了this sample,在第157行,它执行了以下操作:

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

其中hsv.x恰好是float个数字,该值来自鼠标X坐标,其余值为vec3

我的问题是该操作的结果是什么?

1 个答案:

答案 0 :(得分:2)

如果向向量添加标量,则标量将添加到向量的每个组件,因为The OpenGL Shading Language规范(版本4.6,第5章运算符和表达式)说:

  

一个操作数是标量,另一个是矢量或矩阵。在这种情况下,标量操作是   独立地应用于矢量或矩阵的每个分量,产生相同大小的矢量   或矩阵。