ID3DXPRTEngine 介面
ID3DXPRTEngine 介面可用來計算預先計算的弧度傳輸, (PRT) 模擬。 其方法通常會離線使用,以在即時 3D 模型化之前計算每個頂點或每一紋素傳輸向量。
成員
ID3DXPRTEngine介面繼承自IUnknown介面。 ID3DXPRTEngine 也有下列類型的成員:
方法
ID3DXPRTEngine介面具有這些方法。
方法 | Description |
---|---|
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 資料的最小平方誤差降到最低。 這些係數可以搭配外觀或轉換的法向量使用,以模型化動態物件上的全域效果。 |
計算 | 使用 ID3DXPRTEngine::SetMeshMaterials所設定的材質屬性,計運算元表面散佈所產生的來源弧度。 這個方法只能用於網格物件中每個頂點定義的材質。 |
ComputeSSAdaptive | 使用 ID3DXPRTEngine::SetMeshMaterials所設定的自適性取樣和材質屬性,計算將來源弧度對應至子表面散佈所產生的結束弧度的傳輸向量。 方法會在網格上產生新的頂點和臉部,以更精確地近似預先計算的弧度傳輸 (PRT) 訊號。 這個方法只能用於網格物件中每個頂點定義的材質。 |
ComputeSurfSamplesBounce | 計算任意點 (和標準向量) 的 PRT) 樣本 (預先計算的弧度傳輸。 |
ComputeSurfSamplesDirectSH | 計算在網格上不是任意點的傳輸向量,該傳輸向量會對應由球面調色 (SH 所代表的來源弧度 () 近似值) 以結束弧度。 |
ComputeVolumeSamples | 計算從先前光線跳到球面調色的直接光源投影, (SH) 基礎向量,這些向量代表指定位置的事件弧度。 |
ComputeVolumeSamplesDirectSH | 計算遠距光源投影到球面光源 (SH) 基礎向量,這些向量代表指定位置的事件弧度。 |
ExtractPerVertexAlbedo | 從網格複製每個頂點 albedo 值。 |
FreeBounceData | 釋放用於暫時退回光線模擬資料的記憶體。 |
FreeSSData | 釋放用於暫存子表面光線散佈模擬資料的記憶體。 |
GetAdaptedMesh | 傳回網格,其中包含自適性空間取樣所產生的修改。 如果定義) ,傳回的網格只會包含位置、常態和紋理座標 (。 |
GetNumFaces | 擷取網格中的臉部數目,包括因調適性空間取樣而新增的任何新臉部。 |
GetNumVerts | 擷取網格中的頂點數目,包括因調適性空間取樣而新增的任何新頂點。 |
GetVertexAlbedo | 擷取網格頂點的 albedo 值。 |
MultiplyAlbedo | 將每個預先計算的弧度傳輸乘以每個頂點 albedo (PRT) 向量。 |
ResampleBuffer | 重新取樣輸入 ID3DXPRTBuffer 緩衝區,並將它儲存至輸出緩衝區。 這個方法可用來將頂點緩衝區轉換成紋理緩衝區,反之亦然。 它也可以用來將單一通道緩衝區轉換成 3 通道緩衝區,反之亦然。 |
RobustMeshRefine | 細分網格上的臉部,允許不消除網格特徵的保守調適型取樣。 |
ScaleMeshChunk | 調整與指定子訊息相關聯的所有樣本。 此方法適用于計運算元表面散佈。 |
SetCallBack | 設定選擇性回呼函式的指標,此函式會計算完成的球面調色百分比 (SH) 計算,並讓呼叫者選擇中止模擬器。 |
SetMeshMaterials | 在 3D 場景中設定網格材質屬性。 使用這個方法來指定子表面散佈參數。 |
SetMinMaxIntersection | 設定 3D 物件之間交集的最小和最大距離。 這些距離值可用來控制物件可以遮蔽或反射光線的最小或最大距離。 例如,方法可用來限制 3D 模型附近特徵的陰影。 |
SetPerTexelAlbedo | 設定每個紋素的 albedo 值,並覆寫先前的 albedo 值。 |
SetPerTexelNormal | 設定紋理物件中每個材質的一般向量。 如果計算) 以圖元為基礎的預先計算弧度) (傳輸,這個方法會用來儲存網格 (或插補頂點常態的頂點法向量。 |
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;
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱