D3DXSHPRTCompSplitMeshSC-Funktion

Wird mit komprimierten Ergebnissen der Scheitelpunktversion des PRT-Simulators (Precomputed Radiance Transfer) verwendet. Nachdem D3DXSHPRTCompSuperCluster aufgerufen wurde, kann diese Funktion verwendet werden, um das Gitternetz 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 Scheitelpunkte, die mit dieser Gruppe von Gesichtern verbunden sind, sind auch im zurückgegebenen Array ppVertStatus enthalten, das angibt, ob der Scheitelpunkt zum Supercluster gehört.

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 (aus einem komprimierten Puffer extrahiert)

NumVertices [ In]

Typ: UINT

Anzahl der Scheitelpunkte im ursprünglichen Gitternetz.

NumCs [ In]

Typ: UINT

Anzahl von Clustern (Eingabeparameter für Komprimierung))

pSClusterIDs [ In]

Typ: UINT*

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

NumSCs [ In]

Typ: UINT

Anzahl von Superclustern, die in D3DXSHPRTCompSuperClusterzugeordnet sind.

pInputIB [ In]

Typ: LPVOID

Rohindexpuffer für mesh. Das Format hängt von InputIBIs32Bit ab.

InputIBIs32Bit [ In]

Typ: BOOL

True gibt an, dass der Indexpuffer auf 32 Bit festgelegt ist. andernfalls 16 Bit.

NumFaces [ In]

Typ: UINT

Anzahl der Gesichter im ursprünglichen Gitternetz (pInputIB ist dreimal so lang.)

ppIBData [ in, out]

Typ: LPD3DXBUFFER*

Rohindexpuffer, der die resultierenden geteilten Gesichter enthält. Durch InputIBIs32Bit festgelegtes Format. Nach Funktion zugeordnet.

pIBDataLength [ in, out]

Typ: UINT*

Länge von ppIBData, zugewiesen in der Funktion.

OutputIBIs32Bit [ in, out]

Typ: BOOL

True gibt an, dass ein Ganzzahlarray ohne Vorzeichen zuordnet. andernfalls ordnet ein short-Array ohne Vorzeichen zu.

ppFaceRemap [ in, out]

Typ: LPD3DXBUFFER*

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

ppVertData [ in, out]

Typ: LPD3DXBUFFER*

Neue Vertexdatenstruktur. Größe von pVertDataLength.

pVertDataLength [ in, out]

Typ: UINT*

Anzahl der neuen Scheitelpunkte im geteilten Gitternetz. In Funktion zugewiesen.

pSCClusterList [ in, out]

Typ: UINT*

Ein Array mit NumCs der Länge, in das pSCData für jeden Supercluster indiziert (pClusterIDs-Felder), * enthält Cluster, die nach Supercluster sortiert sind.

pSCData [ in, out]

Typ: D3DXSHPRTSPLITMESHCLUSTERDATA*

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

Rückgabewert

Typ: HRESULT

Wenn die Funktion erfolgreich ausgeführt wird, lautet der Rückgabewert D3D _ OK. Wenn die Funktion fehlschlägt, kann der Rückgabewert einer der folgenden Werte sein: D3DERR _ INVALIDCALL, D3DXERR _ INVALIDDATA, E _ OUTOFMEMORY.

Anforderungen

Anforderung Wert
Header
D3DX9Mesh.h
Bibliothek
D3dx9.lib

Weitere Informationen

Vorausberechnen von Radiance Transfer-Funktionen