Développement XNA pour la XBox et le PC
272
// 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);
// Top right corner
vertices[3] = new VertexPositionColor(new Vector3(1, 1, 0), Color.White);
return vertices;
}
2. L’index buffer permet de définir l’ordre dans lequel vous souhaitez que les vertices
soient dessinés à l’écran. La méthode suivante place donc les index de manière à ce
que les deux triangles soient dessinés dans le sens des aiguilles d’une montre pour
ne pas avoir de problèmes avec le backface culling.
private short[] CreateIndices()
{
short[] indices = new short[6];
// Bottom triangle
indices[0] = 0;
indices[1] = 1;
indices[2] = 2;
// Top triangle
indices[3] = 0;
indices[4] = 3;
indices[5] = 1;
return indices;
}
3. Ajoutez ensuite un champ à la classe et définissez-le dans la méthode LoadContent().
short[] indices;
protected override void LoadContent()
{
// …
indices = CreateIndices();
}
4. Pour dessiner le rectangle, vous n’utiliserez plus la méthode DrawUserPrimitives(),
mais la méthode DrawUserIndexedPrimitives(), qui prendra en compte l’index buffer.
graphics.GraphicsDevice.DrawUserIndexedPrimitives(PrimitiveType.TriangleList,
➥vertices, 0, vertices.Length, indices, 0, indices.Length / 3);
=Labat FM.book Page 272 Vendredi, 19. juin 2009 4:01 16
Précédent

- 293/366

Suivant