D3DXComputeNormals-Funktion
Berechnet Einheitennormle für jeden Scheitelpunkt in einem Gitternetz. Wird zur Unterstützung von Legacyanwendungen bereitgestellt. Verwenden Sie D3DXComputeTangentFrameEx, um bessere Ergebnisse zu erzielen.
Syntax
HRESULT D3DXComputeNormals(
_Inout_ LPD3DXBASEMESH pMesh,
_In_ const DWORD *pAdjacency
);
Parameter
-
pMesh [ in, out]
-
Typ: LPD3DXBASEMESH
Zeiger auf eine ID3DXBaseMesh-Schnittstelle, die das normalisierte Gittermodellobjekt darstellt.
-
pAdjacency [ In]
-
Typ: const DWORD *
Zeiger auf ein Array von drei DWORDs pro Gesicht, die die drei Nachbarn für jedes Gesicht im erstellten progressiven Gitter angeben. Dieser Parameter ist optional und sollte auf NULL festgelegt werden, wenn er nicht verwendet wird.
Rückgabewert
Typ: HRESULT
Wenn die Funktion erfolgreich ist, ist der Rückgabewert S _ OK. Wenn die Funktion fehlschlägt, kann der Rückgabewert einer der folgenden sein: D3DERR _ INVALIDCALL, D3DXERR _ INVALIDDATA, E _ OUTOFMEMORY.
Bemerkungen
Für das Eingabegitternetz muss das Flag D3DFVF _ NORMAL im flexiblen Scheitelpunktformat (Flexible Vertex Format, FVF) angegeben sein.
Ein Normalwert für einen Scheitelpunkt wird generiert, indem die Normaldaten aller Gesichter, die diesen Scheitelpunkt gemeinsam haben, durchschnittlich abschn.
Wenn Adjacency bereitgestellt wird, werden replizierte Scheitelungen ignoriert und "geglättet". Wenn keine Adjacency bereitgestellt wird, weisen replizierte Scheitelpunktwerte normal aus, die nur von den Gesichtern gemittelt werden, die explizit auf sie verweisen.
Diese Funktion ruft einfach D3DXComputeTangentFrameEx mit den folgenden Eingabeparametern auf:
D3DXComputeTangentFrameEx( pMesh,
D3DX_DEFAULT,
0,
D3DX_DEFAULT,
0,
D3DX_DEFAULT,
0,
D3DDECLUSAGE_NORMAL,
0,
D3DXTANGENT_GENERATE_IN_PLACE | D3DXTANGENT_CALCULATE_NORMALS,
pAdjacency,
-1.01f,
-0.01f,
-1.01f,
NULL,
NULL);
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Header |
|
| Bibliothek |
|