GLSL - 长度函数

时间:2018-01-21 19:05:34

标签: glsl webgl

从GLSL文档(https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/length.xhtml)中,长度函数"计算向量的长度"。

但我不明白,"长度"这意味着什么?

例如:

length(.5); // returns .5
length(1.); // returns 1.

那么你应该如何以及为什么要使用这个功能呢?

2 个答案:

答案 0 :(得分:3)

请参阅The OpenGL ES Shading Language

8种内置功能,第63页

  

当下面指定了内置函数时,输入参数(和相应的输出)可以是floatvec2vec3vec4,< em> genType 用作参数。

8.4几何函数,第68页

float length (genType x)
     

返回向量x的长度,即
  enter image description here


这意味着length(.5)的结果是:

sqrt(0.5 * 0.5) = 0.5

length(1.)的结果是

sqrt(1.0 * 1.0) = 1.0

答案 1 :(得分:1)

文档使用'genType'作为泛型类型,并且主要显示所有接受此功能的函数,这意味着它可以是任何基类型。

我不知道为什么当它清楚地说它是一个矢量操作时它没有更具体。

我认为很可能它只是返回输入值,如果它是一维矢量,它只是一个数字,它将正确计算二维,三维矢量的长度。

这里长度表示矢量的欧氏距离,而不是元素的长度或数量。