Freigeben über


D3DXSimplifyMesh-Funktion

Generiert ein vereinfachtes Gitter unter Verwendung der bereitgestellten Gewichte, die dem angegebenen MinValue so nahe wie möglich kommen.

Syntax

HRESULT D3DXSimplifyMesh(
  _In_        LPD3DXMESH           pMesh,
  _In_  const DWORD                *pAdjacency,
  _In_  const D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights,
  _In_  const FLOAT                *pVertexWeights,
  _In_        DWORD                MinValue,
  _In_        DWORD                Options,
  _Out_       LPD3DXMESH           *ppMesh
);

Parameter

pMesh [in]

Typ: LPD3DXMESH

Zeiger auf eine ID3DXMesh-Schnittstelle , die das Quellgitter darstellt.

pAdjacency [in]

Typ: const DWORD*

Zeiger auf ein Array von drei DWORDs pro Gesicht, das die drei Nachbarn für jedes Gesicht im zu vereinfachenden Gitter angibt.

pVertexAttributeWeights [in]

Typ: const D3DXATTRIBUTEWEIGHTS*

Zeiger auf eine D3DXATTRIBUTEWEIGHTS-Struktur , die die Gewichtung für jede Vertexkomponente enthält. Wenn dieser Parameter auf NULL festgelegt ist, wird eine Standardstruktur verwendet. Siehe Hinweise.

pVertexWeights [in]

Typ: const FLOAT*

Zeiger auf ein Array von Scheitelpunktgewichten. Wenn dieser Parameter auf NULL festgelegt ist, werden alle Vertexgewichtungen auf 1,0 festgelegt.

MinValue [in]

Typ: DWORD

Anzahl von Scheitelpunkten oder Gesichtern, abhängig vom Flag, das im Options-Parameter festgelegt ist, um das Quellgitter zu vereinfachen.

Optionen [in]

Typ: DWORD

Gibt Vereinfachungsoptionen für das Gitternetz an. Eines der Flags in D3DXMESHSIMP kann festgelegt werden.

ppMesh [out]

Typ: LPD3DXMESH*

Adresse eines Zeigers auf eine ID3DXMesh-Schnittstelle , die das zurückgegebene Vereinfachungsgitter darstellt.

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.

Bemerkungen

Diese Funktion generiert ein Gitter mit MinValue-Scheitelpunkten oder -gesichtern.

Wenn der Vereinfachungsprozess das Gitternetz nicht auf MinValue reduzieren kann, ist der Aufruf trotzdem erfolgreich, da MinValue ein gewünschtes Minimum und kein absolutes Minimum ist.

Wenn pVertexAttributeWeights auf NULL festgelegt ist, werden die folgenden Werte der D3DXATTRIBUTEWEIGHTS-Standardstruktur zugewiesen.

D3DXATTRIBUTEWEIGHTS AttributeWeights;
    
AttributeWeights.Position  = 1.0;
AttributeWeights.Boundary =  1.0;
AttributeWeights.Normal   =  1.0;
AttributeWeights.Diffuse  =  0.0;
AttributeWeights.Specular =  0.0;
AttributeWeights.Tex[8]   =  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};

Diese Standardstruktur sollte von den meisten Anwendungen verwendet werden, da sie nur geometrische und normale Anpassungen berücksichtigt. Nur in besonderen Fällen müssen die anderen Memberfelder geändert werden.

Anforderungen

Anforderung Wert
Header
D3DX9Mesh.h
Bibliothek
D3dx9.lib

Siehe auch

Gitterfunktionen