1. 法线向量是什么?
- 法线向量是一个表示表面朝向的箭头,它的起点在表面上,指向表面“外面”。
- 在3D空间里,任何一个方向都可以用一个三维向量 (X, Y, Z) 来表示。
2. 为什么范围是[-1, 1]?
2.1 单位向量的定义
- 法线向量通常是单位向量,也就是长度为1。
- 单位向量的每个分量(X, Y, Z)都可以是正的、负的或零,具体取决于它指向哪里。
2.2 以球面为例
- 想象一个原点为中心、半径为1的球体。
- 球面上的每一个点都可以用一个单位向量 (X, Y, Z) 表示。
- 这些分量的取值范围就是从-1到1。
- X = -1 表示完全向左,X = 1 表示完全向右
- Y = -1 表示完全向下,Y = 1 表示完全向上
- Z = -1 表示完全向后,Z = 1 表示完全向前
2.3 为什么不是[0, 1]?
- 如果只用[0, 1],就只能表示“一个方向的半球”,无法表示所有可能的方向。
- [-1, 1]能完整覆盖整个球面,所有方向都能表示。
3. 生活中的比喻
- 想象地球的经纬度:
- 经度可以是东(正)或西(负),纬度可以是北(正)或南(负)。
- 法线向量的分量也是这样,有正有负,能指向任何方向。
4. 法线贴图为什么要把[-1, 1]映射到[0, 1]?
- 因为图片的颜色通道只能存01(或0255),不能存负数。
- 所以要做一个“平移+缩放”:
- -1 → 0
- 0 → 0.5
- 1 → 1
5. 总结口诀
“法线单位球,分量正负有;方向全覆盖,范围[-1, 1]守。”
我们继续深入讲讲法线向量为什么是单位向量、为什么分量范围是[-1, 1],以及它在光照计算中的作用。
1. 为什么法线向量要是单位向量?
1.1 单位向量的定义
1.2 为什么要单位长度?
- 法线的方向才重要,长度没意义。
- 在光照计算(如点乘、反射等)中,只有单位向量才能保证结果正确。
- 如果不是单位向量,光照会变得不准确(比如会变暗或变亮)。
2. 为什么分量范围是[-1, 1]?
- 因为单位球面上,X、Y、Z的最大最小值就是-1和1。
- 例如:
- (1, 0, 0):完全朝X正方向
- (-1, 0, 0):完全朝X负方向
- (0, 1, 0):完全朝Y正方向
- (0, 0, 1):完全朝Z正方向
- (0, 0, -1):完全朝Z负方向
- 任何球面上的点,X、Y、Z都不会超过这个范围。
3. 法线向量在光照计算中的作用
3.1 点乘(Dot Product)
3.2 法线贴图的作用
- 法线贴图就是用颜色编码,把每个像素的法线方向存起来。
- 这样可以让表面看起来有很多细节(比如凹凸、划痕),即使模型本身是平的。
4. 形象理解
- 想象你用手电筒照一个球,球面每个点的“朝向”都不一样,这就是法线向量。
- 法线贴图就是把这些“朝向”信息用颜色存下来,给平面“伪装”出复杂的表面。
5. 数学小结
- 单位向量的每个分量范围是[-1, 1],因为它们必须满足 (X^2 + Y^2 + Z^2 = 1)。
- 只有单位向量,点乘和反射等光照计算才准确。
6. 口诀升级
“法线单位球,分量正负有;光照靠方向,长度一为首。”