ID3DXPRTEngine インターフェイス

ID3DXPRTEngine インターフェイスは、事前計算済みの放射転送 (PRT) シミュレーションを計算するために使用されます。 通常、そのメソッドはオフラインで使用され、リアルタイムの 3D モデリングの前に頂点単位またはテクセル単位の転送ベクトルを計算します。

メンバー

ID3DXPRTEngine インターフェイスは、IUnknown インターフェイスから継承されます。 ID3DXPRTEngine には、次の種類のメンバーもあります。

メソッド

ID3DXPRTEngine インターフェイスには、これらのメソッドがあります。

メソッド 説明
ClosestRayIntersects 事前計算済みの放射転送 (PRT) シミュレーションで効率的なレイ トレースを使用して、光線がメッシュと交差するかどうかを判断します。 交差が見つかった場合、 メソッドは、光線によってヒットした最も近いメッシュ面のインデックスと、交点のバリセントリック座標を返します。
ComputeBounce 相互反射光の単一のバウンスに起因するソースの放射輝度を計算します。 この方法は、球面調和(SH)ベースの事前計算済みの放射転送(PRT)モデルを含む、任意の点灯シーンに使用できます。
ComputeBounceAdaptive アダプティブ サンプリングを使用して、反射された光の単一のバウンスに起因するソースの放射輝度を計算します。 このメソッドは、メッシュ上に新しい頂点と面を生成し、事前計算済みの放射転送 (PRT) 信号をより正確に近似します。 この方法は、球面調和 (SH) ベースの PRT モデルを含む、任意の点灯シーンに使用できます。
ComputeDirectLightingSH ソース放射が球面調和 (SH) 近似で表される 3D オブジェクトに対する直接照明の影響を計算します。
ComputeDirectLightingSHAdaptive アダプティブ サンプリングを使用して、ソースの放射度が球面調和 (SH) 近似で表される 3D オブジェクトに対する直接照明の影響を計算します。 このメソッドは、メッシュ上に新しい頂点と面を生成し、事前計算済みの放射転送 (PRT) 信号をより正確に近似します。
ComputeDirectLightingSHGPU GPU を使用して、ソースの放射が球面調和 (SH) 近似で表される 3D オブジェクトへの直接の照明の影響を計算します。 GPU での照明の計算は、通常、CPU よりもはるかに高速になります。
ComputeLDPRTCoeffs 入力 ID3DXPRTBuffer データに関する最小二乗誤差を最小限に抑えるために、サンプルごとの正規ベクトルに対してローカルに変形可能な事前計算された放射輝度転送 (LDPRT) 係数を計算します。 これらの係数は、スキンまたは変換された法線ベクトルと共に使用して、動的オブジェクトに対するグローバル効果をモデル化できます。
Computess ID3DXPRTEngine::SetMeshMaterials によって設定されたマテリアル プロパティを使用して、サブサーフェススキャッタリングによって得られるソースの放射輝度を計算します。 このメソッドは、メッシュ オブジェクト内の頂点ごとに定義されたマテリアルに対してのみ使用できます。
ComputeSSAdaptive ID3DXPRTEngine::SetMeshMaterials によって設定されたアダプティブ サンプリングとマテリアル プロパティを使用して、サブサーフェス散乱によって生じる放射を終了するソース放射をマップする転送ベクトルを計算します。 このメソッドは、メッシュ上に新しい頂点と面を生成して、事前計算済みの放射転送 (PRT) 信号をより正確に近似します。 このメソッドは、メッシュ オブジェクト内の頂点ごとに定義されたマテリアルに対してのみ使用できます。
ComputeSurfSamplesBounce 任意のポイント (および法線ベクトル) の事前計算済みの放射転送 (PRT) サンプルを計算します。
ComputeSurfSamplesDirectSH メッシュ上にない任意の点で、ソース放射輝度(球面調和(SH)近似で表される)を終了放射輝度にマップする転送ベクトルを計算します。
ComputeVolumeSamples 指定した場所でのインシデント放射を表す球面調和 (SH) 基底ベクトルに、前の光バウンスからの直接照明の投影を計算します。
ComputeVolumeSamplesDirectSH 指定した場所でのインシデントの放射を表す球面調和 (SH) 基底ベクトルへの遠くの照明の投影を計算します。
ExtractPerVertexAlbedo 頂点ごとのアルベド値をメッシュからコピーします。
FreeBounceData 一時的なバウンスライト シミュレーション データに使用されるメモリを解放します。
FreeSSData 一時的な地下光散乱シミュレーション データに使用されるメモリを解放します。
GetAdaptedMesh アダプティブ空間サンプリングに起因する変更を含むメッシュを返します。 返されるメッシュには、位置、法線、テクスチャ座標のみが含まれます (定義されている場合)。
GetNumFaces アダプティブ空間サンプリングの結果として追加された新しい顔を含む、メッシュ内の顔の数を取得します。
GetNumVerts アダプティブ空間サンプリングの結果として追加された新しい頂点を含む、メッシュ内の頂点の数を取得します。
GetVertexAlbedo メッシュ頂点の albedo 値を取得します。
MultiplyAlbedo 事前計算された各放射輝度転送 (PRT) ベクトルに頂点ごとの albedo を乗算します。
ResampleBuffer 入力 ID3DXPRTBuffer バッファーをリサンプリングし、出力バッファーに保存します。 このメソッドを使用して、頂点バッファーをテクスチャ バッファーに変換し、その逆を行うことができます。 また、シングルチャネル バッファーを 3 チャネル バッファーに変換したり、その逆に変換したりすることもできます。
RobustMeshRefine メッシュ上の面を分割し、メッシュ上のフィーチャを排除しない保守的なアダプティブ サンプリングを可能にします。
ScaleMeshChunk 特定のサブメッシュに関連付けられているすべてのサンプルをスケーリングします。 この方法は、地下散乱を計算するのに役立ちます。
SetCallBack 完了した球面調和 (SH) 計算の割合を計算し、呼び出し元にシミュレーターを中止するオプションを提供するオプションのコールバック関数へのポインターを設定します。
SetMeshMaterials 3D シーンのメッシュ マテリアル プロパティを設定します。 サブサーフェス スキャッタリング パラメータを指定するには、このメソッドを使用します。
SetMinMaxIntersection 3D オブジェクト間の交差の最小距離と最大距離を設定します。 これらの距離値を使用して、オブジェクトが光をシャドウまたは反射できる最小距離または最大距離を制御できます。 たとえば、 メソッドを使用して、3D モデルの近くのフィーチャのシャドウを制限できます。
SetPerTexelAlbedo 各テクセルに albedo 値を設定し、以前の albedo 値を上書きします。
SetPerTexelNormal テクスチャ オブジェクト内の各テクセルの法線ベクトルを設定します。 このメソッドは、メッシュから頂点法線ベクトルを格納するために使用されます (ピクセルベースの事前計算済みの放射転送 (PRT) が計算されている場合は、頂点法線を補間します)。
SetPerVertexAlbedo メッシュ頂点ごとに albedo 値を設定し、以前の albedo 値を上書きします。
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)