Problème avec un vertexbuffer [Résolu]

Signaler
Messages postés
2
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
27 mai 2009
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
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

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
52
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-
Messages postés
2
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
27 mai 2009

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 :)
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
43
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 ! -
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
52
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-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
43
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 ! -
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
52
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-