D3DXSHEvalDirection 函数 (D3dx9math.h)

注意

D3DX (D3DX 9、D3DX 10 和 D3DX 11) 实用工具库已弃用,并且不支持 Windows 应用商店应用。

注意

建议使用 球面调音数学 库函数 XMSHEvalDirection,而不是使用此函数。

从输入方向向量计算球面和谐 (SH) 基函数。

语法

FLOAT* D3DXSHEvalDirection(
  _Out_       FLOAT       *pOut,
  _In_        UINT        Order,
  _In_  const D3DXVECTOR3 *pDir
);

参数

pOut [out]

类型: FLOAT*

指向球面调和 (SH) 输出系数的指针。 计算将生成 Order² 系数。 请参阅“备注”。

Order [in]

类型: UINT

SH 评估的顺序。 必须在 D3DXSH_MINORDER 范围内才能D3DXSH_MAXORDER(含)。 计算将生成 Order² 系数。 评估程度为 Order - 1。

pDir [in]

类型: const D3DXVECTOR3*

(x、y、z) 计算 SH 基函数的方向向量。 必须规范化。 请参阅“备注”。

返回值

类型: FLOAT*

指向 SH 输出系数的指针。 请参阅“备注”。

注解

基函数 Ylm 的每个系数存储在内存位置 l² + m + l,其中:

  • l 是基函数的度数。
  • m 是给定 l 值的基础函数索引,范围从 -l 到 l(含)。

在具有单位半径的球体上,如下图所示,只需使用 “ta”( 右手方向的 z 轴的角度)和 phi(从 z 开始的角度)来指定方向。

具有单位半径的球体的插图

以下公式显示了笛卡尔 (x、y、z) 与球面 (单位球体上的ta、phi) 坐标之间的关系。 角度 theta 在 0 到 2 pi 的范围内变化,而 phi 在 0 到 pi 之间变化。

笛卡尔坐标和球面坐标之间关系的公式

要求

要求
标头
D3dx9math.h

D3dx9.lib

另请参阅

数学函数

预计算的辐射传输 (Direct3D 9)