normalize
normalize
将任意长度的向量转换为一个长度为1的单位向量,同时保持其原始方向不变。
核心优势
通过提供一个纯粹、标准化的方向表示,它确保了光照等方向性计算的数学正确性,避免了因向量长度不一导致的错误,并能修正因非等比缩放而变形的法线向量。
常见用途
光照计算(法线、光向、视向)
从位置差计算纯方向向量
计算反射与折射向量
如何调整
其效果是决定性的,调整在于“是否”使用它。对一个位置差向量使用它,会移除距离信息,将点光源效果变为方向光效果。创造性地对颜色向量使用,则会极大提升亮度,产生霓虹般的视觉效果。
代码示例
1// 从一个位置差向量中,提取纯粹的光照方向
2const lightDirection = normalize( lightPosition.sub( positionWorld ) );