OpenGL 2D : problème d'affichage de figures entrelacées

Résolu
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 29 oct. 2007 à 16:07
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 29 oct. 2007 à 19:09
Bonjour à tous

Je suis en train de faire une appli OpenGL qui charge des fichiers SVG comme maps de fond, mon problème concerne l'affichage des figures qui se superposent en 2D dans un même plan Z, je pense que vous voyez le problème. Si 2 figures sont sur un même plan en Z, il faut choisir laquelle afficher en priorité par rapport à l'autre, sinon, on voit parfois l'une parfois l'autre, parfois l'une dans l'autre...
A première vue je ne vois que la solution de donner un z différent pour les deux figures suivant l'ordre dans lequel elles sont affichées, mais n'y a-t-il pas une autre solution ???

J'utilise des glArrayElement, mais j'ai vu qu'on pouvait utiliser une liste d'affichage, est-ce que cela résoudrait le problème ???

Merci

RV

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"

3 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
29 oct. 2007 à 17:50
Si tu fais du 2D, tu as aussi l'option de désactiver le Zbuffer. Si deux objets se chevauffent, le dernier affiché recouvrira l'autre.
3
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
29 oct. 2007 à 18:46
Ahhhh ben voilà une réponse qu'elle est bonne,

c'est pas bête effectivement, j'y avait pas pensé

Sinon, je me paume un peu dans l'utilisation des matrices GL_PROJECTION et GL_MODELVIEW et des fonctions glFrustum ou gluPerspective...

J'aimerai bien faire un zoom, je pense qu'il y a plusieur solutions, jouer sur la position en z, ou alors, modifier la matrice GL_PROJECTION, laquelle c'est la mieux ?? sachant que la deuxième pose la question : quand est-ce qu'on rentre dans l'objet ???

J'aimerai aussi que quand je resize ma fenêtre OpenGL, le ratio reste le même, plus précisément, que les proportion soient gardées pour les objets à l'affichage et que seul l'angle de vu soit agrandit ou rapetit en horizontal ou vertical... bref quand j'étire ma fenêtre horizontalement que mon carré reste un carré et pas un rectangle. pour l'instant j'utilise glfrustum(-1.0,1.0,-1.0,1.0, 0.1,1000); pour modifier la GL_PROJECTION et ça me transforme mon carré en rectangle, ça vient bien de là non ???

Si il y a un petit lien qui décrit bien les fonctions les différentes phylosophies entre gluPerspective et glFrustum par ex ...

Merci encore

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
29 oct. 2007 à 19:09
En 2D, on utilise uniquement glOrtho2D(...). Pour un zoom suffit de modifier ses paramètres sur une zone précise.

Le distinguo GL_PROJECTION/GL_MODELVIEW n'existe que pour le coté pratique. Tu peux utiliser uniquement GL_MODELVIEW. De toute facon, au final, les deux sont multipliés.

Dans GL_PROJECTION, tu mets la matrice calculée par glOrtho2D, dans GL_MODELVIEW, tu places les tranformations sur les objets.
0
Rejoignez-nous