Zuordnung zwischen D3D9- und D3D8-Deklarationen

Diese Tabelle ordnet Member einer D3DVERTEXELEMENT9-Deklaration einer Direct3D 8-Deklaration zu.

Verwendung von Direct3D 9 Direct3D 9-Nutzungsindex Direct3D 8
D3DDECLUSAGE_POSITION 0 D3DVSDE_POSITION
D3DDECLUSAGE_POSITION 1 D3DVSDE_POSITION2
D3DDECLUSAGE_NORMAL 0 D3DVSDE_NORMAL
D3DDECLUSAGE_NORMAL 1 D3DVSDE_NORMAL2
D3DDECLUSAGE_BLENDWEIGHT 0 D3DVSDE_BLENDWEIGHT
D3DDECLUSAGE_BLENDINDICES 0 D3DVSDE_BLENDINDICES
D3DDECLUSAGE_PSIZE 0 D3DVSDE_PSIZE
D3DDECLUSAGE_COLOR 0 D3DVSDE_DIFFUSE
D3DDECLUSAGE_COLOR 1 D3DVSDE_SPECULAR
D3DDECLUSAGE_TEXCOORD n D3DVSDE_TEXCOORDn

 

Wenn eine Deklaration mit der Hardwarevertexverarbeitung auf einem Direct3D 7-Treiber verwendet wird, konvertiert die Direct3D-Runtime sie mit den folgenden Regeln in eine FVF:

  • Es sollte nur Stream 0 verwendet werden (erkennbar an der MaxStreams-Obergrenze).
  • Die Reihenfolge der Vertexelemente sollte mit der Reihenfolge der FVF-Bits identisch sein.
  • Lücken in Texturkoordinaten sind nicht zulässig.
  • Alle Vertexelemente, die die Tabelle nicht beschrieben haben, können nicht in eine gültige FVF für alle Treiber vor DirectX 8 konvertiert werden und daher nicht für diese Treiber verwendet werden.
  • Nur D3DDECLTYPE_FLOAT2 ist für Vertexelemente mit D3DDECLUSAGE_TEXCOORD zulässig, wenn das Gerät keine der D3DPTEXTURECAPS_PROJECTED oder D3DPTEXTURECAPS_CUBEMAP feststellt.

Vertexdeklaration