Freigeben über


FVF-Vertexpuffer (Direct3D 9)

Das Festlegen des FVF-Parameters der IDirect3DDevice9::CreateVertexBuffer-Methode auf einen nonzero-Wert, der ein gültiger FVF-Code sein muss, gibt an, dass der Pufferinhalt durch einen FVF-Code gekennzeichnet werden soll. Ein Vertexpuffer, der mit einem FVF-Code erstellt wird, wird als FVF-Vertexpuffer bezeichnet. Einige Methoden oder Verwendungen von IDirect3DDevice9 erfordern FVF-Vertexpuffer, andere erfordern Nicht-FVF-Vertexpuffer. FVF-Vertexpuffer sind als Zielpunktpufferargument für IDirect3DDevice9::P rocessVertices erforderlich.

FVF-Vertexpuffer können für eine beliebige Streamnummer an einen Quelldatenstrom gebunden werden.

Das Vorhandensein der D3DFVF_XYZRHW-Komponente in FVF-Vertexpuffern gibt an, dass die Scheitelpunkte in diesem Puffer verarbeitet wurden. Vertexpuffer, die für IDirect3DDevice9::P rocessVertices-Zielvertexpuffer verwendet werden, müssen nachverarbeitet werden. Vertexpuffer, die für feste Funktionsshadereingaben verwendet werden, können entweder vor- oder nachverarbeitet sein. Wenn der Scheitelpunktpuffer nach der Verarbeitung verarbeitet wird, wird der Shader effektiv umgangen und die Daten direkt an das primitive Clipping- und Setupmodul übergeben.

FVF-Vertexpuffer können mit Vertex-Shadern verwendet werden. Außerdem können Vertexstreams dieselben Vertexformate darstellen, die Nicht-FVF-Vertexpuffer aufweisen können. Sie müssen nicht zum Eingeben von Daten aus separaten Vertexpuffern verwendet werden. Die zusätzliche Flexibilität der neuen Vertexstreams ermöglicht Anwendungen, die ihre Daten getrennt halten müssen, um besser zu funktionieren, ist aber nicht erforderlich. Wenn die Anwendung verschachtelte Daten im Voraus verwalten kann, ist dies eine Leistungssteigerung. Wenn die Anwendung die Daten nur vor jedem Renderingaufruf interleeren wird, sollte sie die API oder Hardware aktivieren, um dies mit mehreren Datenströmen zu tun.

Das Wichtigste bei der Vertexleistung ist die Verwendung eines 32-Byte-Scheitelpunkts und die Aufrechterhaltung einer guten Cachereihenfolge.

Scheitelpunktpuffer