J'ai un souci que je n'arrive pas à comprendre. J'essaie d'afficher un simple triangle sur un device. Je crée donc un tableau de CustomVertex.TransformedColored comme suit:
CustomVertex.TransformedColored[] _vertices = new CustomVertex.TransformedColored[3];
_vertices[0] = new CustomVertex.TransformedColored(100.0f, 100.0f, 0.5f, 1.0f, Color.Blue.ToArgb());
_vertices[1] = new CustomVertex.TransformedColored(200.0f, 200.0f, 0.5f, 1.0f, Color.Blue.ToArgb());
_vertices[2] = new CustomVertex.TransformedColored(100.0f, 200.0f, 0.5f, 1.0f, Color.Blue.ToArgb());
Mon triangle s'affiche bien mais si j'inverse dans mon tableau l'index 1 avec le 2 mon triangle ne s'affiche plus:
CustomVertex.TransformedColored[] _vertices = new CustomVertex.TransformedColored[3];
_vertices[0] = new CustomVertex.TransformedColored(100.0f, 100.0f, 0.5f, 1.0f, Color.Blue.ToArgb());
_vertices[1] = new CustomVertex.TransformedColored(100.0f, 200.0f, 0.5f, 1.0f, Color.Blue.ToArgb());
_vertices[2] = new CustomVertex.TransformedColored(200.0f, 200.0f, 0.5f, 1.0f, Color.Blue.ToArgb());
Quelqu'un sait il pourquoi, cela dépasse ma compréhension :)
Toutes les bibliothèques graphiques utilisent certaines conventions.
En l'occurence, il s'agit de donner les vertex dans le sens inverse des aiguilles de la montre, ce qui n'est pas le cas de l'exemple 2...
Bon, tout d'abord, j'y connais à peu près rien en bibliothèque graphique.
Cependant, une question trotte dans ma tête quand je lis ta réponse Bidou : Qu'appelles-tu le sens inverse des aiguilles d'une montre dans un espace en 3D ? En regardant le l'autre côté, ça inverse le sens logiquement...
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
En fait, caméra n'est pas le bon terme...
La façon dont tu visualises les données n'a pas d'importances, il faut juste que ce soit cohérent (tout dans le même sens).
En principe, on utilise le sens inverse des aiguilles de la montre par rapport à un point de référence. Le fait de bouger la caméra ne change pas ce point.
Je ne sais pas exactement comment ça fonctionne avec DirectX, à l'époque j'avais travaillé avec OpenGL et Java3D, mais en principe toutes les librairies graphiques sont construits avec certaines conventions identiques...