ID3DXPRTEngine::ComputeLDPRTCoeffs 方法
计算本地可变形的预计算辐射传输 (LDPRT) 系数相对于每个样本法线向量,以最大程度地减少与输入 ID3DXPRTBuffer 数据相关的最小二乘误差。 这些系数可以与皮肤化或转换法线向量一起使用,以模拟动态对象上的全局效果。
语法
HRESULT ComputeLDPRTCoeffs(
[in] LPD3DXPRTBUFFER pDataIn,
[in] UINT Order,
[in, out] D3DXVECTOR3 *pNormOut,
[in, out] LPD3DXPRTBUFFER pDataOut
);
参数
-
pDataIn [in]
-
类型: LPD3DXPRTBUFFER
指向输入 ID3DXPRTBuffer 球面调和 (SH) 预计算辐射传输 (PRT) 数据对象的指针。
-
Order [in]
-
类型: UINT
SH 评估的顺序。 必须在 D3DXSH_MINORDER 范围内才能D3DXSH_MAXORDER(含)。 计算结果生成 Order² 系数。 评估的程度为 Order - 1。
-
pNormOut [in, out]
-
类型: D3DXVECTOR3*
可选矢量数组,用于填充着色器最佳法向量,LDPRT 系数将针对这些矢量进行优化。 此数组的大小必须与 pDataIn 中的样本数相同。 如果 为 NULL,则使用图面法向量。
-
pDataOut [in, out]
-
类型: LPD3DXPRTBUFFER
指向输出 ID3DXPRTBuffer 对象的指针,该对象包含每个样本每个颜色通道的有序区域调和系数。
返回值
类型: HRESULT
如果该方法成功,则返回值D3D_OK。 如果方法失败,则返回值可以是下列值之一:D3DERR_INVALIDCALL、E_OUTOFMEMORY。
备注
可以选择使用此方法获取底纹法向量的解决方案。 这些法向量以及 LDPRT 系数可以更准确地表示 PRT 信号。 在这种情况下,系数表示正态方向的局部调和。
此方法不能与 ID3DXPRTEngine::ComputeSurfSamplesBounce 或 ID3DXPRTEngine::ComputeSurfSamplesDirectSH 的结果一起使用。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅