ID3DXPRTEngine 接口

ID3DXPRTEngine 接口用于计算预计算辐射传输 (PRT) 模拟。 其方法通常脱机使用,用于在实时 3D 建模之前计算每个顶点或每纹素传输向量。

成员

ID3DXPRTEngine 接口继承自 IUnknown 接口。 ID3DXPRTEngine 也具有以下类型的成员:

方法

ID3DXPRTEngine 接口具有这些方法。

方法 说明
ClosestRayIntersects 在预计算的辐射传输 (PRT) 模拟中使用高效的光线跟踪来确定光线是否与网格相交。 如果找到交集,该方法将返回光线命中最接近的网格面的索引,以及交点的重中心坐标。
ComputeBounce 计算单次反射光产生的源辐射。 此方法可用于任何照明场景,包括球面和谐 (基于 SH) 的预计算辐射传输 (PRT) 模型。
ComputeBounceAdaptive 使用自适应采样计算单次反射光产生的源辐射。 此方法在网格上生成新的顶点和面,以更准确地接近预计算的辐射传输 (PRT) 信号。 此方法可用于任何照明场景,包括球面和谐 (基于 SH) 的 PRT 模型。
ComputeDirectLightingSH 计算对 3D 对象的直接照明贡献,其中源辐射由球面和谐 (SH) 近似值表示。
ComputeDirectLightingSHAdaptive 使用自适应采样计算对 3D 对象的直接照明贡献,其中源辐射由球面和谐 (SH) 近似值表示。 此方法在网格上生成新的顶点和面,以更准确地接近预计算的辐射传输 (PRT) 信号。
ComputeDirectLightingSHGPU 使用 GPU 计算对 3D 对象的直接照明贡献,其中源辐射由球面调和 (SH) 近似值表示。 计算 GPU 上的照明通常比在 CPU 上快得多。
ComputeLDPRTCoeffs 计算本地可变形的预计算辐射传输 (LDPRT) 相对于每个样本法向量的系数,以最大程度地减少与输入 ID3DXPRTBuffer 数据相关的最小二乘误差。 这些系数可与带皮或转换的法向量一起使用,以模拟动态对象上的全局效果。
ComputeSS 使用 ID3DXPRTEngine::SetMeshMaterials 设置的材料属性计算地下散射产生的源辐射。 此方法仅适用于网格对象中每个顶点定义的材料。
ComputeSSAdaptive 使用 由 ID3DXPRTEngine::SetMeshMaterials 设置的自适应采样和材料属性,计算一个传输向量,该矢量将源辐射映射到由地下散射产生的退出辐射。 方法在网格上生成新的顶点和面,以更准确地近似预计算的辐射传输 (PRT) 信号。 此方法仅适用于网格对象中每个顶点定义的材料。
ComputeSurfSamplesBounce 计算任意点 (和法向量) (PRT) 样本的预计算辐射传输。
ComputeSurfSamplesDirectSH 计算在任意点(不在网格上)计算一个传输向量,该向量映射由球面和谐 (表示的源辐射 (SH) 近似) 退出辐射。
ComputeVolumeSamples 计算从前一个光反弹到球面和谐 (SH) 基向量的投影,这些矢量表示指定位置的入射辐射。
ComputeVolumeSamplesDirectSH 将远光投影到球面和谐 (SH) 基向量中计算,这些向量表示指定位置的事件辐射。
ExtractPerVertexAlbedo 从网格中复制每个顶点的反照量值。
FreeBounceData 释放用于临时弹跳光模拟数据的内存。
FreeSSData 释放用于临时地下光散射模拟数据的内存。
GetAdaptedMesh 返回一个网格,其中包含自适应空间采样导致的修改。 如果定义) ,则返回的网格仅包含 (的位置、法线和纹理坐标。
GetNumFaces 检索网格中的人脸数,包括由于自适应空间采样而添加的任何新人脸。
GetNumVerts 检索网格中的顶点数,包括由于自适应空间采样而添加的任何新顶点。
GetVertexAlbedo 检索网格顶点的反照值。
MultiplyAlbedo 将每个预计算的辐射传输 (PRT) 矢量乘以每个顶点反照度。
ResampleBuffer 重新采样输入 ID3DXPRTBuffer 缓冲区,并将其保存到输出缓冲区。 此方法可用于将顶点缓冲区转换为纹理缓冲区,反之亦然。 它还可用于将单通道缓冲区转换为 3 通道缓冲区,反之亦然。
RobustMeshRefine 细分网格上的人脸,允许保守的自适应采样,不会消除网格上的特征。
ScaleMeshChunk 缩放与给定子网格关联的所有样本。 方法可用于计算地下散射。
SetCallBack 设置指向可选回调函数的指针,该函数计算完成 (SH) 计算的球面调和百分比,并为调用方提供中止模拟器的选项。
SetMeshMaterials 设置 3D 场景中的网格材料属性。 使用此方法可指定地下散射参数。
SetMinMaxIntersection 设置 3D 对象之间交集的最小和最大距离。 这些距离值可用于控制对象可以阴影或反射光的最小或最大距离。 例如,方法可用于限制 3D 模型的附近特征的阴影。
SetPerTexelAlbedo 为每个纹素设置一个反照值,覆盖以前的反照值。
SetPerTexelNormal 为纹理对象中的每个纹素设置一个法向量。 如果正在) 计算基于像素的预计算辐射传输 (PRT) ,则此方法用于存储网格 (或内插顶点法线中的顶点法向量。
SetPerVertexAlbedo 为每个网格顶点设置一个反照值,覆盖以前的反照值。
SetSamplingInfo 设置预计算辐射传输 (PRT) 模拟器使用的采样属性。
ShadowRayIntersects 在预计算的辐射传输 (PRT) 模拟中使用高效的光线跟踪来确定光线是否与网格相交。 通常用于确定给定点是否处于阴影中。

 

备注

若要从 RGB 转换为亮度值,请使用以下公式:

Luminance = R * 0.2125 + G * 0.7154 + B * 0.0721

ID3DXPRTEngine 接口是通过调用 D3DXCreatePRTEngine 函数获取的。

LPD3DXPRTENGINE 类型定义为指向 ID3DXPRTEngine 接口的指针。

typedef interface ID3DXPRTEngine ID3DXPRTEngine;
typedef interface ID3DXPRTEngine *LPD3DXPRTENGINE;

要求

要求
标头
D3DX9Mesh.h

D3dx9.lib

另请参阅

D3DX 接口

D3DXCreatePRTEngine

预计算的辐射传输 (Direct3D 9)