相机空间转换

通过使用通用视图矩阵转换对象顶点来计算相机空间中的顶点。

V = V * wvMatrix

通过使用通用视图矩阵的反向转置转换对象法线来计算相机空间中的顶点法线。 通用视图矩阵可能正交,也可能不正交。

N = N * (wvMatrix⁻¹)T

矩阵反转和矩阵转置在 4 x 4 矩阵上进行。 乘法组合了法线与生成的 4 x 4 矩阵的 3 x 3 部分。

如果呈现状态被设置为标准化法线,则在转换为相机空间后,顶点法线矢量会被标准化,如下所示:

N = norm(N)

通过使用视图矩阵转换光源位置来计算相机空间中的光线位置。

Lₚ = Lₚ * vMatrix

将光源方向乘以视图矩阵,标准化,然后对结果求反,从而计算相机空间中定向光的光线方向。

Ldir = -norm(Ldir * wvMatrix)

对于点光和聚光灯,按如下所述计算光线方向:

Ldir = norm(V - Lₚ),其中参数在下表中进行定义。

参数 默认值 类型 说明
Ldir 空值 3D 矢量(x、y 和 z 浮点值) 从对象顶点到光线的方向矢量
V 空值 3D 矢量(x、y 和 z 浮点值) 相机空间中的顶点位置
wvMatrix 标识 浮点值的 4 x 4 矩阵 包含通用和视图转换的复合矩阵
N 空值 3D 矢量(x、y 和 z 浮点值) 顶点法线
Lₚ 空值 3D 矢量(x、y 和 z 浮点值) 相机空间中的光线位置
vMatrix 标识 浮点值的 4 x 4 矩阵 包含视图转换的矩阵

 

照明的数学运算