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