ID3DXPRTEngine::ComputeVolumeSamplesDirectSH 方法

将远光投影到球面和谐 (SH) 基向量中计算,这些向量表示指定位置的事件辐射。

语法

HRESULT ComputeVolumeSamplesDirectSH(
  [in]            UINT            OrderIn,
  [in]            UINT            OrderOut,
  [in]            UINT            NumVolSamples.xml,
  [in]      const D3DXVECTOR3     *pSampleLocs,
  [in, out]       LPD3DXPRTBUFFER pDataOut
);

参数

OrderIn [in]

类型: UINT

远距离照明的 SH 表示形式的顺序。 必须在 D3DXSH_MINORDER 范围内才能D3DXSH_MAXORDER(含)。 评估程度为 OrderIn - 1。

OrderOut [in]

类型: UINT

本地照明的 SH 表示形式的顺序。 必须在 D3DXSH_MINORDER 范围内才能D3DXSH_MAXORDER(含)。 评估程度为 OrderOut - 1。

NumVolSamples.xml [in]

类型: UINT

示例位置数。

pSampleLocs [in]

类型: const D3DXVECTOR3*

每个样本的位置。

pDataOut [in, out]

类型: LPD3DXPRTBUFFER

指向输出 ID3DXPRTBuffer 对象的指针,该对象将远程照明投影到 SH 基向量中。 此缓冲区必须为模拟分配正确数量的颜色通道。 此方法在每个采样位置为每个通道生成 OrderIn² * OrderOut“² 标量。

返回值

类型: HRESULT

如果方法成功,则返回值D3D_OK。 如果方法失败,则返回值可以是以下值之一:D3DERR_INVALIDCALL、E_OUTOFMEMORY。

备注

此方法计算来自远程源的光如何到达 pSampleLocs 指定的空间中的每个点。 SH 系数表示源辐射到传输的事件辐射的每个 pSampleLocs 点的映射。

若要成功使用此方法,必须在 ID3DXPRTEngine::SetSamplingInfo 中对 UseSphere = TRUE 且 UseCosine = FALSE 的球体设置采样;否则,此方法将返回D3DERR_INVALIDCALL错误。

要求

要求
标头
D3DX9Mesh.h

D3dx9.lib

另请参阅

ID3DXPRTEngine

ID3DXPRTEngine::ComputeVolumeSamples