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错误。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅