D3DXSHEvalSphericalLight 函数 (D3dx9math.h)
计算球面光,并返回光谱球面调和 (SH) 数据。
注意
D3DX (D3DX 9、D3DX 10 和 D3DX 11) 实用工具库已弃用,不支持 Windows 应用商店应用。
注意
建议使用 球面调音数学 库函数 XMSHEvalSphericalLight,而不是使用此函数。
语法
HRESULT D3DXSHEvalSphericalLight(
_In_ UINT Order,
_In_ const D3DXVECTOR3 *pPos,
_In_ FLOAT Radius,
_In_ FLOAT RIntensity,
_In_ FLOAT GIntensity,
_In_ FLOAT BIntensity,
_Out_ FLOAT *pROut,
_Out_ FLOAT *pGOut,
_Out_ FLOAT *pBOut
);
parameters
-
Order [in]
-
类型: UINT
SH 评估的顺序。 必须在 D3DXSH_MINORDER 范围内才能D3DXSH_MAXORDER(含)。 计算结果生成 Order² 系数。 评估的程度为 Order - 1。
-
pPos [in]
-
类型: const D3DXVECTOR3*
指向光线位置的指针。
-
Radius [in]
-
类型: FLOAT
球面光源的半径。
-
RIntensity [in]
-
类型: FLOAT
光的红色强度。
-
GIntensity [in]
-
类型: FLOAT
光的绿色强度。
-
BIntensity [in]
-
类型: FLOAT
光的蓝色强度。
-
pROut [out]
-
类型: FLOAT*
指向红色分量的输出 SH 矢量的指针。
-
pGOut [out]
-
类型: FLOAT*
指向绿色分量的输出 SH 矢量的指针。
-
pBOut [out]
-
类型: FLOAT*
指向蓝色分量的输出 SH 矢量的指针。
返回值
类型: HRESULT
如果函数成功,则返回值D3D_OK。 如果函数失败,则返回值可以是:D3DERR_INVALIDCALL。
备注
计算球面光并返回光谱 SH 数据。 没有像 定向光一样规范化光的强度,因此在指定强度时必须小心。 这将计算三个光谱样本:将返回 pROut ,而 pGOut 和 pBOut 可能会返回。
在具有单位半径的球体上,如下图所示,只需使用 “”(右 手方向的 z 轴的角度)和 phi(从 z 开始的角度)来指定方向。
以下公式显示笛卡尔 (x、y、z) 与单位球体上 (ta、phi) 坐标之间的关系。 角度 theta 在 0 到 2 pi 的范围内变化,而 phi 在 0 到 pi 之间变化。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅