Classe de quadtree ( pour un affichage super rapide) optimisé pour opengl

Soyez le premier à donner votre avis sur cette source.

Vue 11 316 fois - Téléchargée 1 130 fois

Description

qu'est-ce qu'un quadTree?
comme un octree mais en mieux pour les maps a peu pres plates.
En fait, meme si il y a de hautes montagnes ca marche bien, mais c'est a éviter si vous etres dans un donjon ou une tour
Pour une plaine ou toute map d'extérieur c'est parfait et augmente le fps de 80
En gros c'est un arbre binaire qui utilise a fond la récursivité; voyez le code pour plus de détails
affichage du fps dans la fenetre de debug

Ce quadTree a un truc de tres particulier, génial si vous voulez utiliser une autre lib pour laffichage ou les collisions: vous passez tous vos triangles a la dll au début, elle fait ses calculs, et libere toute la memoire utilisée par les triangles
ensuite, elle vous envoie a chaque frame une liste des triangles a afficher
ca évite que toute la mp soit stockée 3 fois en memoire (pour le quadtree, pour opengl, pour l'éventuelle lib de collision comme coldet.dll)

TRES IMPORTANT:
par défaut, le quadtree est désactivé. pour l'utiliser, appuyer sur 'Q' lors de l'affichage

Source / Exemple :


nothing here

Conclusion :


prefs:
sur athlon 1,4Ghz, ATI 9200SE 128mo, 256MoDDR : 15 sec de chargement, 200fps sans optimisation, 280 en utiisant le quadtree
sur P4 3.2Ghz, carte inconnue (Geforce 4 je crois), 512 MoDDR: 3 sec de chargement, un gain approximatif de 100fps grace au quadtree (je n'ai plus les chiffres exacts, c'est pas mon PC)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
le format .obj est tres simple mais n'a pas grand chose a voir avec le prg, c'est juste pour enregistrer mes données sur le disque, j'aurais pu utiliser autre chose...
en gros pour un somment t'as
v 1.0 2.0 3.0
pour des coodrs de texture t'as
vt 0.0 0.0
pour une face t'as un truc genre
sommet1 / sommet2 / sommet3 (ou autre)
etc
mais encore une fois ca a pas gd chose a voir avec le prog
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Il me semble que le loader de fichiers OBJ n'est pas d'Arnaud, et que c'est écrit en haut du fichier glm.cpp...
Si tu veux des explications sur le format, je ne saurais que trop te conseiller Wotsit.org, ou http://nehe.gamedev.net qui propose plusieurs formats de fichiers 3D...
Messages postés
120
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2006

tu peux expliquer le format .obj STP?
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Chuis d'accord, avec ta méthode je viens de me rendre compte que j'aurais mieux fait de ne pas gérer l'affichage directement dans la classe...
Par contre je sais pas si j'aurai vraiment le temps de m'en occuper ces temps-ci, bac oblige pour moi aussi :(

Normalement demain j'essaie de pas trop me mettre sur le PC...

Pour les mesures des FPS/hardware, heu ben je te dirai ça quand j'aurai rebooté sous Win ;)
En tous cas déjà mon hardware, c'est ATI Radeon 9800 Pro et PIII 3.2 GHz ;)
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
MDR pôv 'tit' Funto qui doit booter sous windaube lol
boaf tu sais moi en ce moment je suis plus sous DOS que sous quoi que ce soit d'autre alors te plains pas trop MDR (ben vi, pb de DD)
ca serait cool que tu me files tes perfs (chargement, fps avec et sans optimisation, tps de lecture) ton hardware, histoire de pas mourrir idiot.
saches que j'aurais volontiers mis a profit ta heightmap mais un truc me chiffonne la dedans (c'est pour ca que je retourne uniquement une liste de triangles, pas les vertices), c'est que c'est TA classe qui fait l'affichage, autrememnt dit si on veut faire du multitexturing (vive arb) ou de la transparence on l'a dans l'os pour ne pas etre plus vulgaire :)
d'où cette méthode
ca me fait penser a un truc, faudra mettre a profit good'old MSN
Afficher les 6 commentaires

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.