DirectX12学习记录
前置内容
1.1向量
定义:具有大小和方向的一个物理量,在坐标系中以v=(x,y,z)表示。
DirectX中使用坐标系为左手坐标系,手指朝向X轴正方向,弯曲四指,大拇指指向Z轴正方向。右手坐标系同理。
下图中左图为左手坐标系,右图为右手坐标系。
在几何中我们使用||v||表示向量大小,即向量的模。根据勾股定理可求出向量的大小。
例:
u = (x,y,z)
单位向量:长度为一的向量
规范化:将任意向量的方向不变,长度转为1.
由此公式可知,规范化的过程为
- 求该向量的模
- 向量的每一项除以模。
1.2点积
定义:向量乘法的一种形式,结果为标量,有时也称标量积。
设u = (ux,uy,uz),v = (vx,vy,vz)
u·v = ux×vx+uy×vy+uz×vz
由此可得点积为两个向量的对应分量的乘积之和。
根据余弦定理可得
u·v = ||u||||v||cosθ
其中θ为两向量夹角。
当且仅当u,v都为单位向量时,u·v的结果为两向量夹角的余弦值。
根据公式可得点积的几何意义
- 当u·v = 0时,两向量相互垂直。
- 当u·v > 0时,两向量夹角为锐角。
- 当u·v > 0时,两向量夹角为钝角。
正交投影:已知一向量与一单位向量,该向量在单位向量上的投影为正交投影由图可知存在标量k使得向量p = kn,又n为单位向量,
所以||p|| = ||kn|| = |k| ||n|| = |k|,当且仅当p与n方向相反时k为负数。根据三角函数得k = ||v||cosθ。所以 p = kn = (||v||cosθ)n,又因为n为单位向量,所以得以下公式:
p= kn = (||v||cosθ)n = (||v||·1cosθ)n = (||v||·||n||cosθ)n = (v·n)n
记为
p = Projn(v)
由此推导出通用公式
正交化: