D3DXComputeNormals-Funktion
Berechnet Einheitsnormale für jeden Scheitelpunkt in einem Gitter. Wird zur Unterstützung von Legacyanwendungen bereitgestellt. Verwenden Sie D3DXComputeTangentFrameEx für bessere Ergebnisse.
Syntax
HRESULT D3DXComputeNormals(
_Inout_ LPD3DXBASEMESH pMesh,
_In_ const DWORD *pAdjacency
);
Parameter
-
pMesh [in, out]
-
Typ: LPD3DXBASEMESH
Zeiger auf eine ID3DXBaseMesh-Schnittstelle , die das normalisierte Gitterobjekt 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, wird 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
Das Eingabegitter muss über das flag D3DFVF_NORMAL verfügen, das in seinem flexiblen Vertexformat (FVF) angegeben ist.
Eine Normalität für einen Scheitelpunkt wird generiert, indem die Normalität aller Gesichter, die diesen Scheitelpunkt teilen, generiert wird.
Wenn Adjacency bereitgestellt wird, werden replizierte Scheitelpunkte ignoriert und "geglättet". Wenn keine Adjacency bereitgestellt wird, weisen replizierte Scheitelpunkte Normalwerte auf, 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);
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch