GLSL - 长度函数

GLSL - length function

来自 GLSL 文档 (https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/length.xhtml),长度函数 "calculate the length of a vector"。

但是我不明白,这里的"length"是什么意思?

例如:

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

那么您应该如何以及为什么要使用此功能?

文档使用 'genType' 作为泛型类型,并且大多数情况下它显示了接受它的所有函数,这意味着它可以是任何基本类型。

明明说是向量运算,不知道为什么不更具体

我认为很可能只是 returns 输入值,如果它是一维向量,它只是一个数字,它将正确计算 2 维、3 维向量的长度。

这里的长度是指一个向量的欧几里得距离,而不是它所具有的元素的长度或个数。

The OpenGL ES Shading Language

8 个内置函数,第 63 页

When the built-in functions are specified below, where the input arguments (and corresponding output) can be float, vec2, vec3, or vec4, genType is used as the argument.

8.4 几何函数,第 68 页

float length (genType x)

Returns the length of vector x, i.e.,


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

sqrt(0.5 * 0.5) = 0.5

length(1.)的结果是

sqrt(1.0 * 1.0) = 1.0