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 :

Probleme avec du frustum Culling


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Par défaut Probleme avec du frustum Culling
    Bonjour,

    J'ai un probleme avec mon frustum Culling et l'affichage de ma map en quadtree.

    En fait je construit ma map au depart de telle sorte que les plus petites boundingbox fassent 8 de largeur.

    Ensuite j'ai une class frustum grace a laquelle j'extrait les coefficients des plans du frustum. Ensuite je teste chaque coins des bounding box avec les equations des plans.

    Mon probleme c'est que selon les angles de ma camera il m'affiche soit tout, soit rien du tout. Et sinon lorsque je regarde le sol au niveau de l'origine il ne m'affiche q'un carre d'une taille d'environ 16 qui varie aussi avec l'angle de ma camera!

    Ca fait 3 semaines que je suis dessus et je sais plus quoi faire, donc si vous avez des idees :p

    Je pense que c'est peut etre une histoire de rotation et de repere mais je ne voit pas comment regler ce probleme si c'est ca.

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    ton frustum tu le calcule en recuperant la matrice openGL ??

    si c'est le cas verifie bien que tu n'effectue pas de transformation entre le calcule du frustum et la verification de l'affichage de ton objet...

    en gros le principe resemble a ça :
    placer la camera
    extraire le frustum
    pour chaque objet
    si il est visible
    l'afficher
    fin si
    fin pour
    // fin du rendu

    voila j'espere que ca va pouvoir t'aider
    @+
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Par défaut
    Ouais je le calcule en recuperant la matrice opengl.

    En fait voila ce que je fais avant de calculer le frustum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
          {On repositionne la Camera}
          glRotated(Camera.RotateX,1,0,0);
          glRotated(Camera.RotateY,0,1,0);
          glRotated(Camera.RotateZ,0,0,-1);
          glTranslated(-Camera.XPos,-Camera.YPos,Camera.ZPos);
     
     
          {On extrait les plans du frustum}
          Frustum.calculate;
    Est ce qu'il faudrait mettre les rotations apres le calcul du frustum?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 118
    Par défaut
    Je ne pense pas car sinon tu ne va pas extraire les bon plan du frustum de ta caméra bien orienté.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Par défaut
    Arf...

    Sinon quand je met le coefficient D des plans du frustum au carre ca marche a peu pres. Il ne me fait pas de bug d'affichage et quand je regarde le sol ou que je regarde en dehors de la map, quand je suis sur les bords, je vois une augmentation du fps. Mais autrement ca ne modifie pas les perfomances et je n'ai pas de bug d'affichage

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 18
    Par défaut
    Salut,

    Je ne sais pas si tu en fais, mais il ne faut pas appliquer de transformations avant de dessiner ton quadtree, car les coordonnées de tes bounding boxes sont exprimées en coordonnées locales au quadtree... je ne sais pas si tu comprends ce que je veux dire...

    En gros il faut faire :
    1 - positionner la caméra
    2 - mettre à jour ton objet frustum
    3 - dessiner ton quadtree SANS faire de glTranslate, rotate etc...

    A+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Par défaut
    Malheuresement c'est deja ce que je fais et ca marche toujours pas

  8. #8
    Nouveau candidat au Club
    Inscrit en
    Mars 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 3
    Par défaut
    Et bien, bienvenue au club ... Exactement le même problème.

    Ce n'est pas mon code car je le retrouve un peu partout.
    Quant au transformation dans le modelview ou le projection, elles sont normalement prises en compte car à chaque transformation le frustum peut etre recalculé ... (car ses deux paramètres sont modelview et projection).

    Si l'un de vous a une idée, hésitez pas. Ou contactez moi si vous avez la fleime de vous ajouter à ce forum .

    silvereleven123@hotmail.com

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Par défaut
    a ba ca me rassure au moins je suis pas le seul!

    Moi aussi ce qui est dingue c'est que les coefficients du frustum sont bien recalcules a chaque fois! Et malgre tout ca ne marche pas...

    Le pire c'est que je l'ai recode de 3 manieres differentes et rien n'y fait...

  10. #10
    Nouveau candidat au Club
    Inscrit en
    Mars 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 3
    Par défaut
    j'ai remarqué que cela marche quand la matrice de modelview est à l'identity. Doit yavoir une couille par là ...

  11. #11
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    vous etes sur que quand vous testez vos bounding box les coordonnée sont bien modifiée pour etre placé relativement au centre de la bounding box...

    je m'explique :
    avec une bounding box de 1*1*1, le centre de la bounding box est en 3*3*3 il faut tester tout les point avec leur coordonnée + (3,3,3)...

    @+
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  12. #12
    Nouveau candidat au Club
    Inscrit en
    Mars 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 3
    Par défaut
    Bon j'ai trouvé de mon coté, c t une connerie lors de la normalisation des vecteurs.

    J'avais écris mon code à partir de celui d'un autre, en y mettant ma sauce. Seule blème, ma partie du prog me permettant de mettre les vecteurs des Plane était mauvaise ... Voilà ca marche chez moi

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 6
    Par défaut
    t'as bien de la chance! y aurais moyen que tu m'explique un peu plus ce que t'as fait exactement stp? Si tu veux tu peux me joindre par mail ou msn a z@zzteam.net

    Sinon est ce que le gain de performance est vraiment important avec le frustum culling qui fonctionne ? :p

  14. #14
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    oui si ta scene est bien organisée et que tu peut eliminer une grande partie des objets qui ne devrait pas apparaitre tu gagne beaucoup...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

Discussions similaires

  1. Problème avec mon view frustum culling
    Par overdrivr dans le forum OpenGL
    Réponses: 1
    Dernier message: 22/08/2011, 22h29
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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