ID3DXPRTEngine

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

ID3DXPRTEngine のメンバー

メソッド 説明
ID3DXPRTEngine::ClosestRayIntersects 効率的なレイトレーシングを事前演算済み放射輝度伝播 (PRT) シミュレーションで使用して、光線がメッシュに当たるかどうかを判定します。当たる部分があった場合、このメソッドは、光線が当たる最も近いメッシュ面のインデックスと、交点の重心座標を返します。
ID3DXPRTEngine::ComputeBounce 相互反射したライトの 1 回のバウンスによる光源放射輝度を計算します。このメソッドは、球面調和 (SH) ベースの事前演算済み放射輝度伝播 (PRT) モデルを含んだ、任意のライティング シーンに使用することができます。
ID3DXPRTEngine::ComputeBounceAdaptive 適応サンプリングを使用して、相互反射したライトの 1 回のバウンスによる光源放射輝度を計算します。このメソッドは、新しい頂点と面をメッシュ上に生成して、事前演算済み放射輝度伝播 (PRT) 信号をより正確に見積もります。このメソッドは、球面調和 (SH) ベースの PRT モデルを含めた任意のライティング シーンに使用することができます。
ID3DXPRTEngine::ComputeDirectLightingSH 光源放射輝度が球面調和 (SH) 近似で表される 3D オブジェクトへの直接ライティングのコントリビューションを計算します。
ID3DXPRTEngine::ComputeDirectLightingSHAdaptive 適応サンプリングを使用して、光源放射輝度が球面調和 (SH) 近似で表される 3D オブジェクトへの直接ライティングのコントリビューションを計算します。このメソッドは、新しい頂点と面をメッシュ上に生成して、事前演算済み放射輝度伝播 (PRT) 信号をより正確に見積もります。
ID3DXPRTEngine::ComputeDirectLightingSHGPU GPU を使用して、光源放射輝度が球面調和 (SH) 近似で表される 3D オブジェクトへの直接ライティングのコントリビューションを計算します。GPU 上でのライティングの計算は、一般に、CPU 上での計算よりもはるかに高速となります。
ID3DXPRTEngine::ComputeLDPRTCoeffs 各サンプルの法線ベクトルに対するローカルで変形可能な事前演算済み放射輝度伝播 (LDPRT) 係数を計算して、入力の ID3DXPRTBuffer データに対する最小 2 乗誤差を最小化します。これらの係数を、スキニングまたはトランスフォームされた法線ベクトルと共に使用すると、動的オブジェクトへのグルーバル エフェクトをモデルリングすることができます。
ID3DXPRTEngine::ComputeSS ID3DXPRTEngine::SetMeshMaterials によって設定したマテリアル プロパティを使用して、サブサーフェス スキャッタリングからの光源放射輝度を計算します。このメソッドは、メッシュ オブジェクト内の頂点ごとに定義されたマテリアルにのみ使用することができます。
ID3DXPRTEngine::ComputeSSAdaptive 適応サンプリングと ID3DXPRTEngine::SetMeshMaterials によって設定したマテリアル プロパティを使用して、光源放射輝度をサブサーフェス スキャッタリングからの発射放射輝度へマップする転送ベクトルを計算します。このメソッドは、新しい頂点と面をメッシュ上に生成して、事前演算済み放射輝度伝播 (PRT) 信号をより正確に見積もります。このメソッドは、メッシュ オブジェクト内の頂点ごとに定義されたマテリアルにのみ使用することができます。
ID3DXPRTEngine::ComputeSurfSamplesBounce 任意の点 (および法線ベクトル) について事前演算済み放射輝度伝播 (PRT) サンプルを計算します。
ID3DXPRTEngine::ComputeSurfSamplesDirectSH (球面調和 (SH) 近似で表現された) 光源放射輝度から発射放射輝度にマッピングする転送ベクトルをメッシュ上の任意の点で計算します。
ID3DXPRTEngine::ComputeVolumeSamples 指定場所での入射放射輝度を表す球面調和 (SH) 基底ベクトルに対して、直前のライトのバウンスから受ける直接ライティングの射影を計算します。
ID3DXPRTEngine::ComputeVolumeSamplesDirectSH 指定場所での入射放射輝度を表す球面調和 (SH) 基底ベクトルに対して、遠方ライティングの射影を計算します。
ID3DXPRTEngine::ExtractPerVertexAlbedo 各頂点のアルベド値をメッシュからコピーします。
ID3DXPRTEngine::FreeBounceData バウンスしたライトの一時的なシミュレーション データに使用されたメモリーを解放します。
ID3DXPRTEngine::FreeSSData サブサーフェス ライトのスキャッタリングの一時的なシミュレーション データに使用されたメモリーを解放します。
ID3DXPRTEngine::GetAdaptedMesh 修正が加えられた適応空間サンプリングからのメッシュを返します。返されたメッシュは、位置、法線、およびテクスチャー座標 (定義されている場合) のみを含んでいます。
ID3DXPRTEngine::GetNumFaces メッシュ内の面の数を取得します。これには適応空間サンプリングの結果として加えられた新しい面も含まれます。
ID3DXPRTEngine::GetNumVerts メッシュ内の頂点の数を取得します。これには適応空間サンプリングの結果として加えられた新しい頂点も含まれます。
ID3DXPRTEngine::GetVertexAlbedo メッシュ頂点のアルベド値を取得します。
ID3DXPRTEngine::MultiplyAlbedo それぞれの事前演算済み放射輝度伝播 (PRT) ベクトルを各頂点のアルベド値で乗算します。
ID3DXPRTEngine::ResampleBuffer 入力の ID3DXPRTBuffer バッファーを再サンプリングし、出力バッファーに保存します。このメソッドを使用すると、頂点バッファーをテクスチャー バッファーに、またテクスチャー バッファーを頂点バッファーに変換することができます。また、このメソッドを使用すると、単一チャンネル バッファーを 3 チャンネル バッファーに、また 3 チャンネル バッファーを単一チャンネル バッファーに変換することができます。
ID3DXPRTEngine::RobustMeshRefine メッシュ上の面をさらに分割し、メッシュ上の詳細をもらさない最小限の適応サンプリングを可能にします。
ID3DXPRTEngine::ScaleMeshChunk 特定のサブメッシュに関連付けられたすべてのサンプルをスケーリングします。このメソッドは、サブサーフェス スキャッタリングを計算するのに便利です。
ID3DXPRTEngine::SetCallBack 完了した球面調和 (SH) 計算のパーセンテージを計算し、シミュレーターを中止するオプションを提供する、オプションのコールバック関数へのポインターを設定します。
ID3DXPRTEngine::SetMeshMaterials 3D シーンにおけるメッシュのマテリアル プロパティを設定します。このメソッドはサブサーフェス スキャッタリング パラメーターを指定するために使用します。
ID3DXPRTEngine::SetMinMaxIntersection 3D オブジェクト間の交点の最小距離と最大距離を設定します。これらの距離は、オブジェクトがライトを遮ったり反射したりできる最小距離または最大距離を制御するために使用できます。たとえば、このメソッドを使用すると、3D モデルの隣接する形状に影を付けるのを制限することができます。
ID3DXPRTEngine::SetPerTexelAlbedo テクセルごとにアルベド値を設定して、以前のアルベド値を上書きします。
ID3DXPRTEngine::SetPerTexelNormal テクスチャー オブジェクト内のテクセルごとに法線ベクトルを設定します。このメソッドは、メッシュからの頂点法線ベクトル (または、ピクセルベースの事前演算済み放射輝度伝播 (PRT) が計算されている場合は、補間された頂点法線) を格納するために使用します。
ID3DXPRTEngine::SetPerVertexAlbedo メッシュ頂点ごとにアルベド値を設定して、以前のアルベド値を上書きします。
ID3DXPRTEngine::SetSamplingInfo 事前演算済み放射輝度伝播 (PRT) シミュレーターによって使用されるサンプリング プロパティを設定します。
ID3DXPRTEngine::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;

関連項目

D3DXCreatePRTEngine, 事前演算済み放射輝度伝播 (Direct3D 9)

要件

ヘッダー: D3DX9Mesh.h 宣言

ライブラリ: D3dx9.lib 内容