IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Moteurs 3D Discussion :

Ordre d'affichage de faces dans un moteur 3D


Sujet :

Moteurs 3D

  1. #1
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut Ordre d'affichage de faces dans un moteur 3D
    Bonjour à tous,

    Je suis en train de créer un moteur 3D, mais j'ai un problème : pour éviter que des faces ne se traversent (je ne sais pas comment faire un algorythme rapide pour ces calculs), je calcul l'éloignement de chaque face pour les classer ensuite, ce qui me permet de connaîter l'ordre d'affiche. Jusque là, tout va bien, enfin en partie : le problème est que je ne sais pas trop quels coefs utiliser pour calculer l'éloignement des faces (je fais la moyenne d'éloignement de chaque sommets de la face).

    Je ne suis pas sûr d'avoir été très clair, et si quelqu'un ne comprend pas, j'essaierai de mieux expliquer mon problème. Mais dans les grandes lignes, c'est que je ne sais pas quels coef utiliser pour calculer le centre d'affiche d'une face.

    Merci d'avance, pour ceux qui comprennent.

  2. #2
    mat.M
    Invité(e)
    Par défaut Re: Ordre d'affichage de faces dans un moteur 3D
    Citation Envoyé par Matt2094
    Merci d'avance, pour ceux qui comprennent.
    Oui c'est un problème "classique" de représentation 3d.
    Il faut avoir recours à un arbre de tri binaire ou un "BSP" ; c'est un peu complexe à exposer ici.
    Je conseillerais d'acheter un bon livre sur les théories de la 3d.
    Si tu veux pas te casser la tête tu peux prendre directement Irrlicht ou Ogre3d...

    sinon tu peux t'inspirer de ce tutoriel sur les arborescences de R.Perrot

    http://rperrot.developpez.com/articl...ctures/arbres/

  3. #3
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour

    je calcul l'éloignement de chaque face pour les classer ensuite
    ceci s'appelle l'algorithme du peintre, ça marche, mais c'est pas top.
    Penses plutôt au Z-buffer (c'est utilisé par toutes les cartes graphiques) si tu veux le refaire toi même, sinon opengl fait ça très bien.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  4. #4
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Je comprends pas grand chose sur le toturiel, mais par contre, est-ce-que tu pourrais me donner un lien où je pourrais avoir plus d'infos sur Irrlicht ou Ogre3d Mat.M?

    Et si tu pouvais me donner un lien sur l'alogo Z-Buffer ToTo13 ?

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    bonsoir,

    le Z buffer est un algo de base, tu le trouvera vraiment partout, je n'ai pas de lien particulier.
    En gros, pour chaque pixel de ton écran, tu calcule quel est le pixel de ta scène qui est le plus proche de l'écran. Pour cela, tu balayes ta scène, tu fais une simple projection sur le plan de visée.
    [/url]
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Citation Envoyé par ToTo13
    bonsoir,

    le Z buffer est un algo de base, tu le trouvera vraiment partout, je n'ai pas de lien particulier.
    En gros, pour chaque pixel de ton écran, tu calcule quel est le pixel de ta scène qui est le plus proche de l'écran. Pour cela, tu balayes ta scène, tu fais une simple projection sur le plan de visée.
    [/url]
    Merci, mais cette méthode a l'air un peu gourmande en performances : je souhaite ne pas utiliser directement les performances 3D de la carte graphique (je sais pas comment faire ) ...

  7. #7
    Membre éclairé Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Points : 693
    Points
    693
    Par défaut
    En plus le z buffer ne fonctionne pas vraiment trés bien dès que l'on affiche des polygons transparents.
    A ce moment là, on est obligé de les trier manuelement.

  8. #8
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Bon, Z-Buffer a l'air bien, mais uniquement dans les cas les plus simples (pas de transparence, par exemple). J'ai trouvé un site super qui parle de toutes les méthodes de visualisation 3D : http://raphaello.univ-fcomte.fr/Ig/Default.htm. Je vais insérer Z-Buffer dans mon moteur 3D ...

    Je ne vais pas mettre le tag parce que finalement, on a pas résolu le sujet.

  9. #9
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    Hum il y a aussi le W-buffer.
    Le Z-buffer n'est pas linéaire alors que le W l'est.
    Il y a des erreurs de faite du à la non linéarité du Z-buffer; ces erreurs peuvent être évitées ou tout du moins atténuées en jouant sur le plan proche et le plan loin.
    C'est pour ça que dans Serious Sam, Far Cry, et autre jeux avec des map géantes, qu'il y a des bugs du genre : un objet A, qui est plus loin qu'un objet B est affiché devant...
    Alors A clignotte devant B, la carte bug et affiche A devant B quelques fois alors on voit A en train de clignotter rapidement...
    Il exite plusieurs format de Z-buffer le 24 bit et le 8 ou 16 (je ne sais plus)
    L'inconvéniant du W-buffer c'est qu'il n'est pas géré par toutes les cartes graphiques....
    Première grosse démo en construction :
    http://bitbucket.org/rafy/exo2/

Discussions similaires

  1. Changer l'ordre d'affichage des projets dans netbeans
    Par Elendhil dans le forum NetBeans
    Réponses: 0
    Dernier message: 25/02/2013, 17h04
  2. [AC-2010] Probleme d ordre d affichage des donnees dans un graphique
    Par ultima67 dans le forum IHM
    Réponses: 0
    Dernier message: 09/12/2010, 02h38
  3. Ordre d'affichage des control dans une form
    Par bipcpp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/12/2009, 20h08
  4. Ordre d'affichage des champs dans un site dynamic data
    Par mo5andes dans le forum ASP.NET
    Réponses: 2
    Dernier message: 27/10/2009, 14h38
  5. Comment changer l'ordre d'affichage Bibtex dans un fichier Latex
    Par kimoto dans le forum Bibliographies - Index - Glossaires
    Réponses: 3
    Dernier message: 26/01/2007, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo