Verwenden von Festkommavertexdaten
Aktualisiert: November 2007
Mit Festkommavertexdaten können Sie die Transformations- und die Beleuchtungsgeschwindigkeit von 3D-Grafiktreibern erhöhen, die die Transformation und die Beleuchtung nicht hardwarebasiert implementieren. Einige Treiber können mit Festkommadaten schneller arbeiten. Um herauszufinden, ob der von Ihnen verwendete Treiber Rechenoperationen mit Gleitkommawerten durchführt, prüfen Sie die NativeFloat-Eigenschaft einer DeviceCaps-Struktur. Beim Eigenschaftenwert false sind Festkommadaten besser für das Gerät geeignet. Alle Windows Mobile Direct3D-Treiber müssen sowohl Festkommadaten als auch Gleitkommadaten unterstützen.
Festkommavertexpuffer werden genauso verwendet wie Gleitkommavertexpuffer. Sie unterscheiden sich nur durch die enthaltenen Datenformate und das flexible Vertexformat, das beim Erstellen des Vertexpuffers angegeben wird.
Liegen die Daten nicht schon von vornherein im Festkommaformat vor, können Sie ein Mesh-Objekt erstellen, das Gleitkommadaten enthält. Konvertieren Sie die Daten dann in Festkommadaten, indem Sie die Clone-Methode des Mesh-Objekts aufrufen.
In der folgenden Tabelle sind die VertexFormats-Enumerationswerte aufgeführt, mit denen verschiedene flexible Formate für Gleitkomma- und Festkommadaten angegeben werden. Die Tabelle deckt nicht alle Möglichkeiten ab, sie enthält jedoch Beispiele, die aufzeigen, wodurch sich ein flexibles Festkommavertexformat von einem flexiblen Gleitkommavertexformat unterscheidet.
Format |
Gleitkommaspezifikation |
Festkommaspezifikation |
---|---|---|
Nur Position |
VertexFormats.Position |
VertexFormats.PositionFixed |
Position und normal |
VertexFormats.Position | VertexFormats.Normal |
VertexFormats.PositionFixed | VertexFormats.NormalFixed |
Position und verschwommene Farbe |
VertexFormats.Position | VertexFormats.Diffuse |
VertexFormats.PositionFixed | VertexFormats.Diffuse |
Position und eine 2D-Texturkoordinate |
VertexFormats.Position | VertexFormats.Texture1 |
VertexFormats.PositionFixed | VertexFormats.Texture1 | VertexTextureCoordinate.Fixed(0) |
Position, normal, Glanzfarbe, verschwommene Farbe, eine 1D-Texturkoordinate und eine 2D-Texturkoordinate |
VertexFormats.Position | VertexFormats.Normal | VertexFormats.Diffuse | VertexFormats.Texture2 | VertexTextureCoordinate.Size1(0) |
VertexFormats.PositionFixed | VertexFormats.NormalFixed | VertexFormats.Diffuse | VertexFormats.Texture2 | VertexTextureCoordinate.Size1(0) | VertexTextureCoordinate.Fixed(0) | VertexTextureCoordinate.Fixed(1) |