Partager via


Utilisation de données de vertex à virgule fixe

Mise à jour : novembre 2007

Vous pouvez utiliser des données de vertex à virgule fixe pour augmenter les vitesses de transformation et d'éclairage des pilotes graphiques 3D qui n'implémentent pas la transformation et l'éclairage dans le matériel. Certains pilotes sont capables de travailler plus vite sur les données à virgule fixe. Vous pouvez déterminer si votre pilote utilise des opérations mathématiques à virgule flottante en examinant la propriété NativeFloat d'une structure DeviceCaps. Si la valeur de propriété est false, l'utilisation de données dans un format à virgule fixe est préférable pour le périphérique. Tous les pilotes Windows Mobile Direct3D sont requis pour prendre en charge à la fois les données à virgule fixe et à virgule flottante.

Les mémoires tampons de vertex à virgule fixe sont utilisées de la même façon que les mémoires tampons de vertex à virgule flottante. Les seules différences sont le format des données qu'elles contiennent et le format de vertex flexible spécifié lorsque la mémoire tampon de vertex est créée.

Si les données ne sont pas à l'origine dans un format à virgule fixe, vous pouvez construire un objet Mesh qui contient des données à virgule flottante, puis le convertir en données à virgule fixe avec un appel à la méthode Clone de l'objet Mesh.

Le tableau suivant répertorie les valeurs d'énumération VertexFormats utilisées pour spécifier différents formats flexibles pour les données à virgule flottante et à virgule fixe. Cette liste ne contient pas toutes les possibilités, mais fournit des exemples des différences entre un format de vertex flexible à virgule fixe et un format de vertex flexible à virgule flottante.

Format

Spécification à virgule flottante

Spécification à virgule fixe

Position uniquement

VertexFormats.Position

VertexFormats.PositionFixed

Position et normale

VertexFormats.Position | VertexFormats.Normal

VertexFormats.PositionFixed | VertexFormats.NormalFixed

Position et couleur diffuse

VertexFormats.Position | VertexFormats.Diffuse

VertexFormats.PositionFixed | VertexFormats.Diffuse

Position et une coordonnée de texture 2D

VertexFormats.Position | VertexFormats.Texture1

VertexFormats.PositionFixed | VertexFormats.Texture1 | VertexTextureCoordinate.Fixed(0)

Position, normale, couleur spéculaire, couleur diffuse, une coordonnée de texture 1D et une coordonnée de texture 2D

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)

 

Voir aussi

Autres ressources

Programmation Direct3D Mobile dans le .NET Compact Framework