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
来自 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
, orvec4
, 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