Problème avec les polygones en opengl - C++ - Programmation
Marsh Posté le 25-06-2006 à 19:59:43
tu pourrait pas mettre un exe compile avec les deux versions ??
Marsh Posté le 25-06-2006 à 20:43:42
Le fichier est disponible ici : http://www.transferbigfiles.com/Do [...] 38931954c2 Pour changer de mode, les touches a et z : a : mode fil de fer, z mode remplissage
Marsh Posté le 25-06-2006 à 20:50:36
Pour qu'OpenGL s'en sorte pour remplir ton polygone, ta figure doit être convexe, ce qui n'est pas le cas ici.
Tu dois découper ta figure en plusieurs élements convexes (comme des triangles) et les afficher. Hésite pas à poser une question si tu comprends pas !
http://fr.wikipedia.org/wiki/Convexe
Marsh Posté le 26-06-2006 à 09:19:55
d'accord, mais n'y a-t-il aucun moyen de faire en sorte qu'il puisse remplir une figure concave ?
Marsh Posté le 26-06-2006 à 09:26:10
Bon ok, reprenons le problème : j'ai un tableau de dimensions 2n qui contient les coordonnées de n points, n points qui formaient mon poylgone. Y a-t-il un moyen simple pour que opengl fasse les triangles ?
Une autre petite question : sur une carte graphique très bas de gamme (genre radeon 9000), combien de polygones peuvent être affichés simultanément en opengl sans que ca "rame" ?
Marsh Posté le 26-06-2006 à 09:43:40
je crois que le coup de transformer n points comme ça en triangles, ça s'appelle la Tesselation.
Je crois aussi que c'est pas tout à fait trivial à calculer; un doc sur le sujet:
http://alrj.org/viewdoc.php?doc_id=126
Quant à sa gestion par opengl, ca reste carrément à vérifier.
Marsh Posté le 26-06-2006 à 17:19:23
Voir aussi delaunay triangulation.
OpenGL est une API bas niveau qui se veut proche du hardware. Pour cette raison, il est nécessaire de fournir les données géométriques dans le format le plus proche du hardware, c'est a dire le triangle. Les polygones convexes sont facilement triangulables, c'est pour cela qu'ils sont supportés. En revanche, la triangulation de polygones non-convexes est plus compliquée, et ce n'est pas le role d'une API de le faire.
Sinon pour ce qui est d'une radeon 9000, il s'agit d'une carte à base de RV250, c'est à dire un chip techniquement inférieur au R200, c'est à dire à une radeon 8500.
Pour la question combien de polygones (parlons tout de suite de triangles), ça dépend fortement du type de rendu. La carte peut etre limitée par 1000 autres facteurs que le simple nombre de triangles (fillrate, bande passante mémoire, anti-aliasing, éclairage, shaders (tres limité sur ces cartes)).
Marsh Posté le 25-06-2006 à 19:58:04
Bonjour, j'ai le code source suivant :
Cependant, comme vous pouvez le voir si vous le compilez, quand on est en mode fil de fer, on obtient le chiffre 1 alors que quand on est en mode remplissage, on obtient une autre chose "bizarre"
Comment faire pour obtenir en mode remplissage un 1 correctement rempli ?
Merci d'avance
NC