相机空间转换 (Direct3D 9)
通过使用通用视图矩阵转换对象顶点来计算相机空间中的顶点。
V = V * wvMatrix
通过使用通用视图矩阵的反向转置转换对象法线来计算相机空间中的顶点法线。 通用视图矩阵可能正交,也可能不正交。
N = N * (wvMatrix⁻¹)T
矩阵反转和矩阵转置在 4 x 4 矩阵上进行。 乘法组合了法线与生成的 4 x 4 矩阵的 3 x 3 部分。
如果呈现状态D3DRENDERSTATE_NORMALIZENORMALS设置为 TRUE,则转换为相机空间后,将规范化顶点法向量,如下所示:
N = norm(N)
通过使用视图矩阵转换光源位置来计算相机空间中的光线位置。
Lₚ = Lₚ * vMatrix
将光源方向乘以视图矩阵,标准化,然后对结果求反,从而计算相机空间中定向光的光线方向。
Ldir = -norm(Ldir * wvMatrix)
对于D3DLIGHT_POINT和D3DLIGHT_SPOT到光的方向计算如下:
Ldir = norm (V * Lp) ,其中参数在下表中定义。
参数 | 默认值 | 类型 | 说明 |
---|---|---|---|
Ldir | 空值 | D3DVECTOR | 从对象顶点到光线的方向矢量 |
V | 空值 | D3DVECTOR | 相机空间中的顶点位置 |
wvMatrix | 标识 | D3DMATRIX | 包含通用和视图转换的复合矩阵 |
N | 空值 | D3DVECTOR | 顶点法线 |
Lₚ | 空值 | D3DVECTOR | 相机空间中的光线位置 |
vMatrix | 标识 | D3DMATRIX | 包含视图转换的矩阵 |
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈