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

OpenGL Discussion :

Gestion des objets 3D en fonction de leur distance avec la caméra


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Septembre 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 43
    Par défaut Gestion des objets 3D en fonction de leur distance avec la caméra
    Bonjour,


    Dans le temps les programmes OpenGL utilisaient pour un même objet 3D à afficher à l'écran 2 ou 3 meshs différents en fonction de leur distance avec la caméra.
    - un de près haute résolution, pleins de points
    - parfois un mesh intermédiaire, lorsque l'objet affiché ne dépassait pas une certaine taille à l'écran
    - un de loin, basse résolution, moche mais de loin, ce n'était que pour la forme.

    Cela obligeaient les créateurs d'objets en 3D à fournir plusieurs models à différents degré de précision de leur objet3D.

    Aussi, je me suis posé la question, (car je dois retravailler sur des meshs) quelle est la tendance actuelle, au vu de la toute puissance des CG ?
    - On lui balance des meshs (unique) immense et elle se débrouille comme une grande, même si elle doit en afficher plusieurs qui ont chacun moins de 15px à l'écran dans la plus part des cas ?
    - On reste fidèle aux vieilles techniques du temps passé ?
    - On crée un algorithme qui diminue le nombre de points en live pour arriver à un bon compromis ? Ca existe au fait ?

    - Existe-t-il d'autres techniques ?

    Cordialement

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 036
    Billets dans le blog
    12
    Par défaut
    Le LOD (technique dont tu parles, de plusieurs meshes de resolution différente) se pratique toujours, de ce que j'en sais.

    Maintenant, il y a une technique basée sur les tessellation shaders, permettant d'affiner les meshes, à partir d'une normal map et d'une height map.
    Je ne sais pas à quel point cette technique est utilisée, par contre.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 162
    Billets dans le blog
    4
    Par défaut
    Salut,

    oui c'est toujours appliqué, ça s'appelle le LOD (Level of Detail) : https://fr.wikipedia.org/wiki/Level_of_detail
    Tu pourrais avoir un algo qui le fait pour toi en dynamique, mais ça nécessite surement d'avoir un fichier spécifique, des mesh clé etc pour savoir lesquels enlever à quel moment. Faut aussi s'assurer que ça prenne pas plus de temps sinon tu perds l'intérêt de ce système qui est là pour améliorer les performances.
    En pratique je pense qu'un combo algo + fichier est pas mal : tu définies un système avec les artistes 3D pour utiliser un mot-clé pour les mesh qui doivent être conservés à X et Y niveau de LOD, puis tu utilises le fichier de base pour créer les fichiers aux différents niveaux de LOD. Peu de boulot en plus pour la création d'assets, peu d'impact sur les performances puisque non dynamique.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Septembre 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 43
    Par défaut
    Merci beaucoup pour ces précisions.

    Je comprends bien l'intérêt du LOD.

    Je vais m'arranger avec mes artistes 3D pour faire des modèles qui intègrent le LOD au lieu de m'éparpiller avec un ensemble de fichiers distincts pour représenter le même objet.

    Je vous remercie pour vos réponses!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] Modifier des cellules excel en fonction de leur couleur
    Par Tententai dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/03/2007, 19h14
  2. Réponses: 9
    Dernier message: 20/03/2007, 20h56
  3. Pb de gestion des objets Excel
    Par tedparker dans le forum Access
    Réponses: 2
    Dernier message: 11/09/2006, 18h13
  4. [VB2005] Gestion des évenement dans une fonction
    Par arnolem dans le forum Windows Forms
    Réponses: 8
    Dernier message: 24/07/2006, 10h07
  5. Gestion des buffers dans une fonction
    Par JiJiJaco dans le forum Langage
    Réponses: 2
    Dernier message: 06/01/2006, 12h20

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