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 :

Level of detail


Sujet :

OpenGL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 38
    Points
    38
    Par défaut Level of detail
    Bonjour à tous je souhaiterai faire du level of detail avec opengl mais je ne sais pas trop comment faire....

    J'aimerai que suivant les distances entre les objets et la camera ceux-ci soit texturer différemment.

    Si vous aviez quelque pistes pour m'orienter ce serai très aimable à vous!

  2. #2
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    s'il s'agit juste de changer le niveau de détail des textures, tu peux utiliser le mip-mapping.

    Je ne vais expliquer comment, un peu de recherche sur le forum ou google et tu trouveras des tas de tutoriaux sur les textures. Le mip-mapping est tres simple à mettre en oeuvre.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    Désoler pour l'erreur dans le titre...

    Mais en fait, je souhaiterai faire ma propre fonction Mipmapping.

    En fais je charge mes textures via d'internet. J'aimerai que quand la camera se trouve à la distance x d'un objet il y a la texture par défaut. Lors que la camera atteint la distance x+y je télécharge la nouvelle texture et quand la camera atteint la distance x+z j'affiche la nouvelle texture.

    Est-ce possible en utilisant glTexImage2D sachant que je n'ai pas en mémoire à l'avance les textures? Sinon comment procéder?

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Je sais que c'est possible, mais je ne sais plus trop comment :s
    Désolé
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    Donc personne à une idée. Par exemple comment savoir la position de l'objet par rapport à la camera?

  6. #6
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Points : 1 630
    Points
    1 630
    Par défaut
    Pourquoi veux-tu changer de texture en fonction de la distance de l'objet ? Tu peux d'abord charger une texture basse resolution pour tres vite afficher la scene et si tu te rapproches de l'objet afficher une texture de plus haute resolution ou c'est autre chose ? Bref, peux-tu detailler tes besoins ?
    Je ne réponds à aucune question par MP, posez vos questions sur le forum adéquat.
    Profils : G+ - LinkedIn

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    C'est ça! lorsque je me rapproche de l'objet je veux une texture de meilleur résolution.
    Il y a tout de même quelque spécificité. En fait il s'agit d'afficher dans un environnement 3d des images stocké sur internet ( plus exactement des photos). Il s'agira d'une application tournant sur des téléphones mobiles. Pour cela j'ai besoin d'un application light niveau ressource. Donc la création des sous textures ce fais sur un serveur (dans ce cas un servlet).

    De même pour évité de charger trop d'image j'ai besoin d'afficher que ce qui est nécessaire.

    Pour l'instant je créé une file de photos. Elles ont toutes la résolution minimum.

    La camera est libre donc j'aimerai que lorsque l'on atteint certain seul avec la camera par rapport à un des objet que je puisse lancer la fonction de téléchargement puis affiché la nouvelle texture et vice versa.

  8. #8
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Points : 1 630
    Points
    1 630
    Par défaut
    Et ou est le probleme ? Normalement tu connais la position de ta camera et de ton objet, il te suffit de faire un calcul de distance et de faire quelques if else
    Je ne réponds à aucune question par MP, posez vos questions sur le forum adéquat.
    Profils : G+ - LinkedIn

  9. #9
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Pareil je vois pas trop où est la question à moins que tu ne demande quelque chose de vraiment basique comme : tient c'est une bonne idée de stocker une matrice de transformation à mon objet et à ma camera, d'y extraire leur vecteur position et de calculer la différence

  10. #10
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Si j'ai compris, il demande du mipmapping, mais sans la fonction d'openGL car il veut faire une technique de mipmap qui change totalement d'image lorsque l'on s'approche de la scène.

    Ce que je veux dire, c'est que j'ai l'impression qu'il veut faire un deep zoom ... ou un zoom deepless enfin je sais pas comment on appelle ça ... mais un truc qui zoom toujours plus :p
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  11. #11
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Moi si j'ai bien compris je dirais un zoom à la google earth

  12. #12
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Oui ... c'est ça
    Maintenant faut savoir ce qu'en dit abzal
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  13. #13
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 219
    Points : 239
    Points
    239
    Par défaut
    Et bien abzal ... avec la méthode de déplacement de camera, tu risque de rencontré certain souci et n'est pas du tout le plus optimisé. Le raisonnement que je t'offre juste en dessous peut semblé compliqué, mais la calitée sera au rendez vous.

    Si j'en ai compris, tu souhaite pouvoir faire un zoom sur des photos comme si cela été un album photo. J'ai déjà programmer çà pour un album photo en javascript mais le principe est le même, en faite, aucun déplacement de camera ou de ta photo. Je m'explique ...

    Part on du principe que tes photos sont affiché par un cuad, tu vas tout simplement agrandir le cuad pour zoomer (le déplacer si tu le souhaite pour des déplacement de "camera"). Donc notre image est taille réel sur l'écran, tu souhaites zoomer. Le quad s'agrandit ... Mais panique, cela devient moche, tu souhaite charger une photo plus précise du web... seulement, il n'est pas nécessaire de charger les parties de la photo qui ne seront pas à l'écran. il faudra donc, découpé tes photo en "régions" (comme les cartes autoroutière de la france) et ne charger, que les régions nécessaire (pas besoin de la carte de la Bretagne quand tu te trouve en montagne), chaque régions est une texture différente.... pas de problème, chaque région sur des cuads différent les un à coté des autres.
    Idéalement, il faut que la largeur de la régions fasse la moitié de celle de l'écran, valable aussi pour la hauteur, comme çà, tu affiche 9 régions maximum.

    Grace à cette technique, les chargement de détails seront bien plus optimisé, et les animation, plus fluide. Le CPU sera légèrement plus sollicité pour les zooms et déplacement, la carte graphique et la bande passante serons carement moin sollicité.

    Le top, est que quand tu doit charger des régions de photo plus précise, elle ne s'afficheront pas forcement au même moment, donc, il faut dessiné tes cuad plus preci par dessus celui qui est de précision moin élever, en faisant correspondre les superpositions. Des que ton écran est tapissé de toutes tes régions plus précise, tu n'affiche plus les régions de précision moins élevé.

    J'ai vérifié, et google map à ce genre d'algorithme.

    PS : tout les cuad sont de largeur 1.0f et pour agrandire, utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glScalef (ZoomValue, ZoomValue, ZoomValue);
    et les deplacement : glTranslatef (x, y, z);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glTranslatef (x, y, z);
    sinon ton CPU va en prendre plein les dents.

Discussions similaires

  1. Level Of Detail et autres
    Par Albenejean dans le forum DirectX
    Réponses: 1
    Dernier message: 15/06/2007, 21h48
  2. [MFC]affichage mode detail d'une CFileDialog
    Par lucky dans le forum MFC
    Réponses: 13
    Dernier message: 14/09/2005, 22h05
  3. Requete permettant de voir le detail d'une table
    Par Sandrine75 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/03/2004, 12h51
  4. [Ferme] DBLookup fiche detail (relation maitre detail)
    Par boyerf dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/02/2004, 20h12
  5. [CR9] Plusieurs champs dans details
    Par maxxou dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 28/01/2004, 13h35

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