What does it mean to normalize a value?

北战南征 提交于 2020-04-29 07:12:11

问题


I'm currently studying lighting in OpenGL, which utilizes a function in GLSL called normalize. According to OpenGL docs, it says that it "calculates the normalized product of two vectors". However, it still doesn't explain what "normalized" mean. I have tried look for what a normalized product is on Google, however I can't seem to find anything about it. Can anyone explain what normalizing means and provide a few example of a normalized value?


回答1:


It's a mathematical term and this link explains its meaning in quite simple terms:

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:

  1. calculate its length, then,
  2. divide each of its (xy or xyz) components by its length...



回答2:


I think the confusion comes from the idea of normalizing "a value" as opposed to "a vector"; if you just think of a single number as a value, normalization doesn't make any sense. Normalization is only useful when applied to a vector.

A vector is a sequence of numbers; in 3D graphics it is usually a coordinate expressed as v = <x,y,z>.

Every vector has a magnitude or length, which can be found using Pythagora's theorem: |v| = sqrt(x^2 + y^2 + z^2) This is basically the length of a line from the origin <0,0,0> to the point expressed by the vector.

A vector is normal if its length is 1. That's it!

To normalize a vector means to change it so that it points in the same direction (think of that line from the origin) but its length is one.

The main reason we use normal vectors is to represent a direction; for example, if you are modeling a light source that is an infinite distance away, you can't give precise coordinates for it. But you can indicate where to find it from a particular point by using a normal vector.



来源:https://stackoverflow.com/questions/11644356/what-does-it-mean-to-normalize-a-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!