凹凸映射公式 (Direct3D 9)

Direct3D 将以下公式应用于每个凹凸图像素中的 DU 和 DV 组件。

凹凸映射矩阵转换的公式

在这些公式中,DU 和 DV 变量直接从凹凸贴图像素获取,并由 2x2 矩阵转换,以生成输出增量值 DU' 和 DV'。 系统使用输出值修改下一个纹理阶段中处理环境映射的纹理坐标。 通过D3DTSS_BUMPENVMAT00、D3DTSS_BUMPENVMAT10、D3DTSS_BUMPENVMAT01和D3DTSS_BUMPENVMAT11纹理阶段状态设置转换矩阵的系数。

除了 you 和 v delta 值外,系统还可以计算亮度值,该亮度值用于调调下一个混合阶段的环境映射的颜色,如以下公式所示。

输出亮度公式,从比例系数和偏移量计算

在此公式中,L' 是正在计算的输出亮度。 L 变量是从凹凸贴图像素获取的亮度值,该像素乘以缩放因子 S,并乘以变量 O 中的值偏移量。D3DTSS_BUMPENVLSCALE和D3DTSS_BUMPENVLOFFSET纹理阶段状态控制公式中 S 和 O 变量的值。 仅当包含凹凸贴图的阶段的纹理混合操作设置为D3DTOP_BUMPENVMAPLUMINANCE时,才应用此公式。 使用 D3DTOP_BUMPENVMAP 时,系统对 L'使用值 1.0。

计算输出增量值 DU' 和 DV' 后,系统会将它们添加到下一纹理阶段的纹理坐标中,并通过亮度调节所选颜色,以生成应用于多边形的颜色。

凹凸贴图