Zuordnung zwischen D3D9- und D3D8-Deklarationen

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

Direct3D 9-Nutzung 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 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 (siehe MaxStreams-Obergrenze).
  • Die Reihenfolge der Scheitelpunktelemente sollte mit der Reihenfolge der FVF-Bits identisch sein.
  • Lücken in Texturkoordinaten sind nicht zulässig.
  • Alle Scheitelpunktelemente, die in der Tabelle nicht beschrieben werden, können nicht für alle Pre-DirectX 8-Treiber in eine gültige FVF konvertiert und daher nicht für diese Treiber verwendet werden.
  • Nur D3DDECLTYPE FLOAT2 ist für Scheitelpunktelemente mit D3DDECLUSAGE TEXCOORD zulässig, wenn das Gerät keine der _ _ D3DPTEXTURECAPS PROJECTED- oder _ D3DPTEXTURECAPS _ CUBEMAP-Obergrenzen festgelegt.

Scheitelpunktdeklaration