次の方法で共有


D3DXSHPRTCompSplitMeshSC 関数

事前計算済みの放射転送 (PRT) シミュレーターの頂点バージョンの圧縮結果と共に使用されます。 D3DXSHPRTCompSuperCluster を呼び出した後、この関数を使用して、スーパー クラスターごとにメッシュを面/頂点のグループに分割できます。 各スーパー クラスターには、いずれかのクラスターに分類された頂点を含むすべての顔が含まれます。 この一連の面に接続されているすべての頂点は、返される配列 ppVertStatus にも含まれ、頂点がスーパー クラスターに属しているかどうかを示します。

構文

HRESULT D3DXSHPRTCompSplitMeshSC(
  _In_    UINT                          *pClusterIDs,
  _In_    UINT                          NumVertices,
  _In_    UINT                          NumCs,
  _In_    UINT                          *pSClusterIDs,
  _In_    UINT                          NumSCs,
  _In_    LPVOID                        pInputIB,
  _In_    BOOL                          InputIBIs32Bit,
  _In_    UINT                          NumFaces,
  _Inout_ LPD3DXBUFFER                  *ppIBData,
  _Inout_ UINT                          *pIBDataLength,
  _Inout_ BOOL                          OutputIBIs32Bit,
  _Inout_ LPD3DXBUFFER                  *ppFaceRemap,
  _Inout_ LPD3DXBUFFER                  *ppVertData,
  _Inout_ UINT                          *pVertDataLength,
  _Inout_ UINT                          *pSCClusterList,
  _Inout_ D3DXSHPRTSPLITMESHCLUSTERDATA *pSCData
);

パラメーター

pClusterIDs [in]

型: UINT*

NumVertices クラスター ID (圧縮バッファーから抽出)。

NumVertices [in]

型: UINT

元のメッシュ内の頂点の数。

NumCs [in]

型: UINT

クラスターの数 (圧縮への入力パラメーター)。

pSClusterIDs [in]

型: UINT*

スーパー クラスター ID を含むサイズ NumC の配列。

NumSCs [in]

型: UINT

D3DXSHPRTCompSuperCluster に割り当てられたスーパー クラスターの数。

pInputIB [in]

種類: LPVOID

メッシュの生インデックス バッファー。 形式は InputIBIs32Bit によって異なります。

InputIBIs32Bit [in]

種類: BOOL

TRUE の場合、インデックス バッファーは 32 ビットに設定されます。それ以外の場合は 16 ビット。

NumFaces [in]

型: UINT

元のメッシュ内の面の数 (pInputIB はこの長さの 3 倍です)。

ppIBData [in, out]

種類: LPD3DXBUFFER*

結果として得られる分割面を含む生インデックス バッファー。 InputIBIs32Bit によって決定される形式。 関数によって割り当てられます。

pIBDataLength [in, out]

型: UINT*

関数で割り当てられた ppIBData の長さ。

OutputIBIs32Bit [in, out]

種類: BOOL

TRUE の場合は、符号なし整数配列を割り当てます。それ以外の場合は、符号なし短い配列を割り当てます。

ppFaceRemap [in, out]

種類: LPD3DXBUFFER*

ppIBData 内の各顔を元の顔にマッピングします。 長さは *pIBDataLength/3 です。

ppVertData [in, out]

種類: LPD3DXBUFFER*

新しい頂点データ構造。 pVertDataLength のサイズ。

pVertDataLength [in, out]

型: UINT*

分割メッシュ内の新しい頂点の数。 関数で割り当てられます。

pSCClusterList [in, out]

型: UINT*

各スーパークラスターの pSCData インデックスが (pClusterIDs* フィールド) に格納される長さ NumC の配列には、スーパークラスターで並べ替えられたクラスターが含まれます。

pSCData [in, out]

種類: D3DXSHPRTSPLITMESHCLUSTERDATA*

スーパー クラスターごとの構造。 ppIBDatapSCClusterList、および ppVertData へのインデックスが含まれます。

戻り値

種類: HRESULT

関数が成功した場合、戻り値はD3D_OK。 関数が失敗した場合、戻り値は次のいずれかになります:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA、E_OUTOFMEMORY。

要件

要件
ヘッダー
D3DX9Mesh.h
ライブラリ
D3dx9.lib

関連項目

事前計算済みの放射転送関数