What does it mean to normalize a value?
我目前正在研究OpenGL中的照明,该照明利用了GLSL中称为标准化的功能。根据OpenGL文档,它说它"计算两个向量的归??一化乘积"。但是,它仍然没有解释"规范化"的含义。我曾尝试在Google上查找标准化产品,但是似乎找不到任何相关信息。任何人都可以解释规范化的含义并提供一些规范化值的示例吗?
- 你是在哪里找到那个东西的?在glsl规范中有:normalize(genType x)-返回与x方向相同但长度为1的向量。opengl.org/registry/doc/GLSLangSpec.Full.1.20.8.pdf
-
在这里,我认为这是我用Google搜索时想到的第一件事。 opengl.org/sdk/docs/manglsl/xhtml/normalize.xml
-
奇怪...但是描述中有正确的信息。
-
通常,在研究计算机图形时,您至少应具有简单线性代数的基本知识,因为对向量进行归一化将不会成为您经常遇到的最复杂的事情。
-
我很抱歉提出这样一个简单的问题,因为我只是大二学生。我没想到图形编程需要这么高级的数学。
-
为什么这个问题这么讨厌?这是一个完全有效的问题,具有完全正确的答案。
-
因为这是词汇课。我们可以使用english.stackexchange.com,尽管他们可能会将此问题作为"一般参考"来解决。
-
这是一个有效的问题。很明显,@ theAmateurProgrammer已经给出了一些想法,但是被许多假定您已经熟悉基于矢量的数学的写作所迷惑。他/她对我表示同情。这不是有人要别人发送密码的情况。
-
我最近遇到了这个问题,希望找到相同的答案!所有的答案和评论都有帮助。我想为这个对我真正有帮助的系列做出贡献:khanacademy.org/math/linear-algebra/vectors-and-spaces/vecto??rs / ...
我认为混淆来自标准化"值"而不是"向量"的想法;如果您只是将一个数字视为一个值,则规范化没有任何意义。规范化仅在应用于矢量时才有用。
向量是数字序列;在3D图形中,通常是表示为v = <x,y,z>。
的坐标。
每个向量都有一个大小或长度,可使用毕达哥拉斯定理找到:|v| = sqrt(x^2 + y^2 + z^2)这基本上是从原点<0,0,0>到向量表示的点的线的长度。
向量的长度为1就是正常的。就是这样!
归一化向量意味着将其更改为指向同一方向(从原点考虑该线),但其长度为一个。
我们使用法线向量的主要原因是代表方向;例如,如果要对无限远的光源建模,则无法为其提供精确的坐标。但是,您可以使用法线向量指示从特定点在哪里找到它。
- 归一化确实对于单个值有意义。这就是sign(x)的作用。
-
@Jessy还算公平,但是比3-vector的情况有趣/令人困惑的多了。
-
大概。不过,我认为这有助于理解这一概念。例如,我认为想象一下归一化的" n> 1向量"和"归一化的1-向量"的点积很有用。您可以可视化其他尺寸的贡献如何不影响向量之间的angular。只有与1-vector匹配的尺寸才重要。
-
感谢您的确认。当我说值时,我基本上是指向量,但是我不确定整数/浮点数是否也可以归一化,因此术语值被认为既代表向量又代表整数
这是一个数学术语,此链接以非常简单的术语解释了其含义:
Operations in 2D and 3D computer graphics are often performed using copies of vectors that have been normalized ie. converted to unit vectors... Normalizing a vector involves two steps:
calculate its length, then,
divide each of its (xy or xyz) components by its length...