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::ComputeSurfSamplesBounceID3DXPRTEngine::ComputeSurfSamplesDirectSH 的结果一起使用。

要求

要求
标头
D3DX9Mesh.h

D3dx9.lib

另请参阅

ID3DXPRTEngine