Les bases de la programmation 3D
CHAPITRE 12
287
Il semble qu’il y ait un problème d’affichage… La raison est simple : vous n’avez que
8 vertices et les coordonnées de texture ont été définies de façon à bien correspondre pour
la face avant et la face arrière du cube. La solution est tout aussi simple : déclarez 4 vertices
pour chaque face du cube, soit 24 vertices au total, et paramétrez correctement les
coordonnées de texture pour chacune des faces :
private void InitializeVertices()
{
vertices = new VertexPositionColorTexture[24];
// Front Top left corner
vertices[0].Position = new Vector3(position.X - widthOver2, position.Y +
➥widthOver2, position.Z + widthOver2);
vertices[0].TextureCoordinate = new Vector2(0, 0);
vertices[0].Color = Color.White;
// Front Bottom right corner
vertices[1].Position = new Vector3(position.X + widthOver2, position.Y -
➥widthOver2, position.Z + widthOver2);
vertices[1].TextureCoordinate = new Vector2(2, 2);
vertices[1].Color = Color.White;
// Front Bottom left corner
vertices[2].Position = new Vector3(position.X - widthOver2, position.Y -
➥widthOver2, position.Z + widthOver2);
vertices[2].TextureCoordinate = new Vector2(0, 2);
vertices[2].Color = Color.White;
// Front Top right corner
Figure 12-22
Un problème lors du
placage de la texture
=Labat FM.book Page 287 Vendredi, 19. juin 2009 4:01 16
CHAPITRE 12
287
Il semble qu’il y ait un problème d’affichage… La raison est simple : vous n’avez que
8 vertices et les coordonnées de texture ont été définies de façon à bien correspondre pour
la face avant et la face arrière du cube. La solution est tout aussi simple : déclarez 4 vertices
pour chaque face du cube, soit 24 vertices au total, et paramétrez correctement les
coordonnées de texture pour chacune des faces :
private void InitializeVertices()
{
vertices = new VertexPositionColorTexture[24];
// Front Top left corner
vertices[0].Position = new Vector3(position.X - widthOver2, position.Y +
➥widthOver2, position.Z + widthOver2);
vertices[0].TextureCoordinate = new Vector2(0, 0);
vertices[0].Color = Color.White;
// Front Bottom right corner
vertices[1].Position = new Vector3(position.X + widthOver2, position.Y -
➥widthOver2, position.Z + widthOver2);
vertices[1].TextureCoordinate = new Vector2(2, 2);
vertices[1].Color = Color.White;
// Front Bottom left corner
vertices[2].Position = new Vector3(position.X - widthOver2, position.Y -
➥widthOver2, position.Z + widthOver2);
vertices[2].TextureCoordinate = new Vector2(0, 2);
vertices[2].Color = Color.White;
// Front Top right corner
Figure 12-22
Un problème lors du
placage de la texture
=Labat FM.book Page 287 Vendredi, 19. juin 2009 4:01 16
