ID3DXPRTEngine::ComputeVolumeSamples 方法
计算从前一个光反弹到球面和谐 (SH) 基向量的投影,这些矢量表示指定位置的入射辐射。
语法
HRESULT ComputeVolumeSamples(
[in] LPD3DXPRTBUFFER pSurfDataIn,
[in] UINT Order,
[in] UINT NumVolSamples.xml,
[in] const D3DXVECTOR3 *pSampleLocs,
[in, out] LPD3DXPRTBUFFER pDataOut
);
参数
-
pSurfDataIn [in]
-
类型: LPD3DXPRTBUFFER
指向输入 ID3DXPRTBuffer 对象的指针,该对象表示上一次光线反弹中的 3D 对象。
-
Order [in]
-
类型: UINT
SH 评估的顺序。 必须在 D3DXSH_MINORDER 范围内才能D3DXSH_MAXORDER(含)。 计算将生成 Order² 系数。 评估程度为 Order - 1。
-
NumVolSamples.xml [in]
-
类型: UINT
示例位置数。
-
pSampleLocs [in]
-
类型: const D3DXVECTOR3*
每个样本的位置。 如果 pSampleLocs 为 NULL,则 ComputeVolumeSamples 将计算每个网格顶点处的传输矩阵。 但是,如果 pSampleLocs 不为 NULL,则必须在 ID3DXPRTEngine::SetSamplingInfo () 中设置 UseSphere = TRUE 且 UseCosine = FALSE 的 sphere 上采样;否则,ComputeVolumeSamples 将返回D3DERR_INVALIDCALL。
-
pDataOut [in, out]
-
类型: LPD3DXPRTBUFFER
指向输出 ID3DXPRTBuffer 对象的指针,该对象将来自前一个光的直接照明反射到 SH 基向量中。 此缓冲区必须为模拟分配正确数量的颜色通道。
返回值
类型: HRESULT
如果方法成功,则返回值D3D_OK。 如果方法失败,则返回值可以是以下值之一:D3DERR_INVALIDCALL、E_OUTOFMEMORY。
备注
此方法计算源辐射函数的光线如何从表面反射,该表面表示 (pSurfDataIn) 的场景,并到达 pSampleLocs 指定的空间中的每个点。 SH 系数表示源辐射到传输的事件辐射的每个 pSampleLocs 点的映射。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅