Glsl 长度函数
在GLSL文档()中,length函数“计算向量的长度” 但我不明白,这里的“长度”是什么意思 例如:Glsl 长度函数,glsl,shader,webgl,Glsl,Shader,Webgl,在GLSL文档()中,length函数“计算向量的长度” 但我不明白,这里的“长度”是什么意思 例如: length(.5); // returns .5 length(1.); // returns 1. 那么您应该如何以及为什么使用这个函数呢 文档使用“genType”作为泛型类型,它主要显示所有接受该类型的函数,这意味着它可以是任何基类型 我不知道为什么它不是更具体,当它清楚地说,这是一个向量运算 我认为它很可能只是返回输入值,如果它是一个一维向量,它只是一个数字,它会正确地计算出二维、
length(.5); // returns .5
length(1.); // returns 1.
那么您应该如何以及为什么使用这个函数呢 文档使用“genType”作为泛型类型,它主要显示所有接受该类型的函数,这意味着它可以是任何基类型 我不知道为什么它不是更具体,当它清楚地说,这是一个向量运算 我认为它很可能只是返回输入值,如果它是一个一维向量,它只是一个数字,它会正确地计算出二维、三维向量的长度 这里的长度是指向量的欧几里德距离,而不是它所具有的元素的长度或计数。参见 8内置功能,第63页 如果在下面指定了内置函数,其中输入参数(和相应的输出)可以是
float
、vec2
、vec3
或vec4
,则genType用作参数
8.4几何函数,第68页
返回向量x的长度,即这意味着
长度(.5)
的结果是:
sqrt(0.5 * 0.5) = 0.5
length(1.)的结果是
sqrt(1.0 * 1.0) = 1.0
以防万一,您可能应该知道,但是您链接到的参考页是针对OpenGL GLSL 4的,而WebGL并没有使用它。WebGL1使用GLSL ES 1.0,WebGL2添加GLSL ES 3.00。在这种特殊情况下,长度的文档是相似的,但在其他方面,规格不同,功能不同。“如果是一维向量,它只返回输入值”,如果是负值,则返回值,因为欧几里德距离总是正值。
sqrt(1.0 * 1.0) = 1.0