D3DXSHPRTCompSplitMeshSC
事前計算済み放射輝度伝播 (PRT) シミュレータの頂点バージョンの圧縮された結果と共に使用されます。D3DXSHPRTCompSuperCluster が呼び出された後で、この関数を使用し、スーパークラスターごとにメッシュを面または頂点のグループに分割できます。各スーパークラスターには、クラスターの 1 つに分類された頂点を含むすべての面が格納されます。この面のセットに接続されるすべての頂点は、返される配列 ppVertStatus (頂点がスーパークラスターに属しているかどうかを示す) にも含まれます。
HRESULT
D3DXSHPRTCompSplitMeshSC(
UINT * pClusterIDs,
UINT NumVertices,
UINT NumCs,
UINT * pSClusterIDs,
UINT NumSCs,
LPVOID pInputIB,
BOOL InputIBIs32Bit,
UINT NumFaces,
LPD3DXBUFFER * ppIBData,
UINT * pIBDataLength,
BOOL OutputIBIs32Bit,
LPD3DXBUFFER * ppFaceRemap,
LPD3DXBUFFER * ppVertData,
UINT * pVertDataLength,
UINT * pSCClusterList,
D3DXSHPRTSPLITMESHCLUSTERDATA* pSCData
);
パラメータ
- pClusterIDs
uNumVerts クラスター ID (圧縮されたバッファーから抽出) - NumVertices
元のメッシュ内の頂点の数 - NumCs
クラスターの数 (圧縮の入力パラメーター) - pSClusterIDs
スーパークラスター ID を含むサイズ uNumC の配列 - NumSCs
D3DXSHPRTCompSuperCluster に割り当てられたスーパークラスターの数 - pInputIB
メッシュの行インデックス バッファー。フォーマットは InputIBIs32Bit に依存します。 - InputIBIs32Bit
TRUE の場合は、インデックス バッファーが 32 ビットに設定され、そうでない場合は 16 ビットに設定されます。 - NumFaces
元のメッシュの面の数 (pInputIB はこの長さの 3 倍) - ppIBData
最終的な分割面を含む行インデックス バッファー。フォーマットは bIBIs32Bit によって決まります。関数によって割り当てられます。 - pIBDataLength
ppIBData の長さ。関数で割り当てられます。 - OutputIBIs32Bit
TRUE の場合、符号なし整数配列が割り当てられ、そうでない場合は符号なし短配列が割り当てられます。 - ppFaceRemap
ppIBData の各面の元の面へのマッピング。長さは *pIBDataLength の 1/3 です。 - ppVertData
新しい頂点データの構造体。pVertDataLength のサイズです。 - pVertDataLength
分割メッシュ内の新しい頂点の数。関数で割り当てられます。 - pSCClusterList
各スーパークラスターに対応する (Cluster* fields) を pSCData がインデックス付けしている、長さ uNumC の配列。スーパークラスターによってソートされたクラスターを格納しています。 - pSCData
スーパークラスターごとの構造体。インデックスを ppIBData、pSCClusterList、および ppVertData に格納します。
戻り値
成功すると、D3D_OK を返します。失敗した場合は、次の戻り値のいずれかを返します。D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA、E_OUTOFMEMORY
要件
ヘッダー: D3DX9Mesh.h 宣言
ライブラリ: D3dx9.lib 内容