Les bases de la programmation 3D
CHAPITRE 12
267
Des vertices à la forme à dessiner
Nous allons à maintenant nous intéresser à l’utilisation concrète des vertices, d’abord
pour du dessin en deux dimensions, puis pour le dessin d’un cube.
Dessiner en 2D
Chaque vertex de la forme à dessiner à l’écran est défini par un objet de type Vertex
PositionColor. Vous stockerez tous ces vertices dans un tableau. Commencez par ajouter
un champ à la classe.
VertexPositionColor[] vertices;
La classe VertexPositionColor prend deux arguments : la position du vertex et sa couleur.
La méthode suivante crée un triangle :
private VertexPositionColor[] CreateShape()
{
VertexPositionColor[] vertices = new VertexPositionColor[3];
// Top left corner
vertices[0] = new VertexPositionColor(new Vector3(-1, 1, 0), Color.White);
// Bottom right corner
vertices[1] = new VertexPositionColor(new Vector3(1, -1, 0), Color.White);
// Bottom left corner
vertices[2] = new VertexPositionColor(new Vector3(-1, -1, 0), Color.White);
return vertices;
}
Vous n’avez plus qu’à dessiner le triangle. Commencez par signaler à l’objet Graphics
Device le type de vertex que vous allez utiliser.
Ensuite, déclarez un objet de type BasicEffect. Il faut savoir que, sans effet, vous ne pourrez
pas afficher de scène 3D à l’écran. Le premier paramètre attendu par le constructeur est
GraphicsDevice. Le second paramètre vous permet de partager des ressources entre
plusieurs effets. Fixez-le donc à null, puisque vous n’utilisez ici qu’un seul effet. Ensuite,
fixez les propriétés de l’objet, telle que la matrice de projection, celle de la vue, ou encore
le type de lumière désiré. Enfin, vous parcourrez les différentes passes de l’effet et appelez
la méthode DrawUserPrimitives() de GraphicsDevice. Cette méthode attend le type de
primitives à dessiner, les vertices à afficher, l’offset du premier vertex à dessiner et enfin,
le nombre de primitives à afficher.
Vous avez à présent tous les outils en main pour dessiner un premier triangle (figure 12-11).
Ci-dessous se trouve le code source complet de ce premier exemple.
=Labat FM.book Page 267 Vendredi, 19. juin 2009 4:01 16
Précédent

- 288/366

Suivant