Problème avec un vertexbuffer

Résolu
skroue Messages postés 2 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 27 mai 2009 - 27 mai 2009 à 19:15
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 28 mai 2009 à 15:29
Hello,

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 :)

6 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 mai 2009 à 20:56
Bonsoir,

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...

<hr />
-Blog-
-Site Perso-
3
skroue Messages postés 2 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 27 mai 2009
27 mai 2009 à 19:26
Je recommence (IE8 encore lui ...) !!!

Hello, 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 :)
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
28 mai 2009 à 11:58
Salut

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 ! -
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
28 mai 2009 à 12:40
C'est la vue de la caméra qui fait fois.
Si on se place derrière, ça inverse bien sûr le sens.

<hr />
-Blog-
-Site Perso-
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
28 mai 2009 à 13:37
Et il se passe quoi si tu bouges la caméra de l'autre côté ?

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
28 mai 2009 à 15:29
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...

<hr />
-Blog-
-Site Perso-
0
Rejoignez-nous