OpenGL 2D : problème d'affichage de figures entrelacées [Résolu]

Messages postés
185
Date d'inscription
samedi 21 mai 2005
Dernière intervention
16 juillet 2016
- - Dernière réponse : luhtor
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
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"
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de luhtor
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Dernière intervention
16 juillet 2016
0
Merci
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"
Commenter la réponse de RV2931
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
0
Merci
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.
Commenter la réponse de luhtor

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.