D3DXSHPRTCompSplitMeshSC-Funktion

Wird mit komprimierten Ergebnissen der Vertexversion des vorberechneten PRT-Simulators (Radiance Transfer) verwendet. Nachdem D3DXSHPRTCompSuperCluster aufgerufen wurde, kann diese Funktion verwendet werden, um das Gitter in eine Gruppe von Gesichtern/Scheitelpunkten pro Supercluster aufzuteilen. Jeder Supercluster enthält alle Gesichter, die einen beliebigen Scheitelpunkt enthalten, der in einem seiner Cluster klassifiziert ist. Alle mit dieser Gruppe von Gesichtern verbundenen Scheitelpunkte sind auch im zurückgegebenen Array ppVertStatus enthalten, das angibt, ob der Scheitelpunkt zum Supercluster gehört oder nicht.

Syntax

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
);

Parameter

pClusterIDs [in]

Typ: UINT*

NumVertices-Cluster-IDs (extrahiert aus einem komprimierten Puffer).)

NumVertices [in]

Typ: UINT

Anzahl der Scheitelpunkte im ursprünglichen Gitter.

NumCs [in]

Typ: UINT

Anzahl von Clustern (Eingabeparameter zur Komprimierung.)

pSClusterIDs [in]

Typ: UINT*

Array der Größe NumCs , die Supercluster-IDs enthalten.

NumSCs [in]

Typ: UINT

Anzahl der In D3DXSHPRTCompSuperCluster zugeordneten Supercluster.

pInputIB [in]

Typ: LPVOID

Roher Indexpuffer für Gitter. Das Format hängt von InputIBIs32Bit ab.

InputIBIs32Bit [in]

Typ: BOOL

Bei TRUE ist der Indexpuffer auf 32 Bit festgelegt. andernfalls 16 Bit.

NumFaces [in]

Typ: UINT

Anzahl der Gesichter im ursprünglichen Gitter (pInputIB ist 3-mal so lang.)

ppIBData [in, out]

Typ: LPD3DXBUFFER*

Unformatierter Indexpuffer, der die resultierenden geteilten Flächen enthält. Format, das durch InputIBIs32Bit bestimmt wird. Zugeordnet nach Funktion.

pIBDataLength [in, out]

Typ: UINT*

Länge von ppIBData, zugewiesen in der Funktion.

OutputIBIs32Bit [in, out]

Typ: BOOL

Wenn TRUE, ordnet ein ganzzahliges Array ohne Vorzeichen zu. Andernfalls ordnet ein unsigniertes Short-Array zu.

ppFaceRemap [in, out]

Typ: LPD3DXBUFFER*

Zuordnung jedes Gesichts in ppIBData zu originalen Gesichtern. Die Länge ist *pIBDataLength/3.

ppVertData [ein, aus]

Typ: LPD3DXBUFFER*

Neue Scheitelpunktdatenstruktur. Größe von pVertDataLength.

pVertDataLength [in, out]

Typ: UINT*

Anzahl der neuen Scheitelpunkte in geteiltem Gitter. In -Funktion zugewiesen.

pSCClusterList [ein, aus]

Typ: UINT*

Array der Länge NumCs , die pSCData in (pClusterIDs*-Felder) für jeden Supercluster indiziert, enthält Nach Supercluster sortierte Cluster.

pSCData [ein, aus]

Typ: D3DXSHPRTSPLITMESHCLUSTERDATA*

Struktur pro Supercluster. Enthält Indizes in ppIBData, pSCClusterList und ppVertData.

Rückgabewert

Typ: HRESULT

Wenn die Funktion erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Funktion fehlschlägt, kann der Rückgabewert einer der folgenden sein: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Anforderungen

Anforderung Wert
Header
D3DX9Mesh.h
Bibliothek
D3dx9.lib

Siehe auch

Vorcomputed Radiance Transfer Functions