从GLSL文档(https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/length.xhtml)中,长度函数"计算向量的长度"。
但我不明白,"长度"这意味着什么?
例如:
length(.5); // returns .5
length(1.); // returns 1.
那么你应该如何以及为什么要使用这个功能呢?
答案 0 :(得分:3)
请参阅The OpenGL ES Shading Language
8种内置功能,第63页
当下面指定了内置函数时,输入参数(和相应的输出)可以是
float
,vec2
,vec3
或vec4
,< em> genType 用作参数。
8.4几何函数,第68页
float length (genType x)
这意味着length(.5)
的结果是:
sqrt(0.5 * 0.5) = 0.5
,length(1.)
的结果是
sqrt(1.0 * 1.0) = 1.0
答案 1 :(得分:1)
文档使用'genType'作为泛型类型,并且主要显示所有接受此功能的函数,这意味着它可以是任何基类型。
我不知道为什么当它清楚地说它是一个矢量操作时它没有更具体。
我认为很可能它只是返回输入值,如果它是一维矢量,它只是一个数字,它将正确计算二维,三维矢量的长度。
这里长度表示矢量的欧氏距离,而不是元素的长度或数量。