ID3DXPRTEngine 接口

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

成员

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

方法

ID3DXPRTEngine 接口具有这些方法。

方法 说明
最接近的RayIntersects 在预计算辐射传输中使用高效的光线跟踪 (PRT) 模拟来确定光线是否与网格相交。 如果找到交集,该方法将返回由光线和交点的光心坐标命中最近的网格面的索引。
ComputeBounce 计算由单次传出光反弹产生的源辐射。 此方法可用于任何点亮场景,包括球面调和 (SH) 基于预计算的辐射传输 (PRT) 模型。
ComputeBounceAdaptive 使用自适应采样计算由单次传出光反弹产生的源辐射。 此方法生成网格上的新顶点和面,以更准确地近似预计算弧度传输 (PRT) 信号。 此方法可用于任何点亮场景,包括球面调和 (SH) 基于 PRT 的模型。
ComputeDirectLightingSH 计算 3D 对象的直接照明贡献,其中源辐射由球面调和 (SH) 近似表示。
ComputeDirectLightingSHAdaptive 使用自适应采样计算 3D 对象的直接照明贡献,其中源辐射由球面调和 (SH) 近似表示。 此方法生成网格上的新顶点和面,以更准确地近似预计算弧度传输 (PRT) 信号。
ComputeDirectLightingSHGPU 使用 GPU 计算 3D 对象的直接照明贡献,其中源辐射由球面调音表示 (SH) 近似值。 计算 GPU 上的照明通常比 CPU 快得多。
ComputeLDPRTCoeffs 计算相对于每样本正向量 (LDPRT) 系数的本地可变形预计算辐射传输,以最大程度地减少与输入 ID3DXPRTBuffer 数据相关的最小平方误差。 这些系数可与皮肤化或转换的普通向量一起使用,以对动态对象进行全局影响建模。
计算 使用 ID3DXPRTEngine::SetMeshMaterials 设置的材料属性计算子表面散点产生的源辐射。 此方法仅适用于网格对象中每个顶点定义的材料。
ComputeSSAdaptive 使用 ID3DXPRTEngine::SetMeshMaterials 设置的自适应采样和材料属性,计算将源辐射映射到从子表面散点生成的退出辐射的传输矢量。 该方法在网格上生成新的顶点和人脸,以更准确地近似预计算弧度传输 (PRT) 信号。 此方法仅适用于网格对象中每个顶点定义的材料。
ComputeSurfSamplesBounce 计算任意点 (和正常向量) (PRT) 样本的预计算弧度传输。
ComputeSurfSamplesDirectSH 计算在网格上不位于任意点的传输矢量,该传输矢量映射由球面和谐 (SH) 近似) 表示的源辐射 (以退出辐射。
ComputeVolumeSamples 计算上一个光反弹到球面和谐 (SH) 基向量的投影,这些矢量表示指定位置的事件辐射。
ComputeVolumeSamplesDirectSH 计算远距离照明投影到球面调和 (SH) 基向量,这些矢量表示指定位置的事件辐射。
ExtractPerVertexAlbedo 从网格中复制每个顶点的 albedo 值。
FreeBounceData 释放用于临时弹跳光模拟数据的内存。
FreeSSData 释放用于临时子表面光散点模拟数据的内存。
GetAdaptedMesh 返回一个网格,其中包含自适应空间采样产生的修改。 返回的网格仅包含定义) 时 (的位置、法线和纹理坐标。
GetNumFaces 检索网格中的人脸数,包括自适应空间采样后添加的任何新人脸。
GetNumVerts 检索网格中的顶点数,包括自适应空间采样后添加的任何新顶点。
GetVertexAlbedo 检索网格顶点的 albedo 值。
MultiplyAlbedo 将每个预计算弧度传输 (PRT) 向量乘以每顶点 albedo。
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

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

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

typedef interface ID3DXPRTEngine ID3DXPRTEngine;
typedef interface ID3DXPRTEngine *LPD3DXPRTENGINE;

要求

要求 Value
标头
D3DX9Mesh.h

D3dx9.lib

另请参阅

D3DX 接口

D3DXCreatePRTEngine

预计算辐射传输 (Direct3D 9)