HEIGHTMAP OPENGL

Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008 - 17 juil. 2004 à 15:05
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 - 11 mai 2013 à 22:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24645-heightmap-opengl

Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
11 mai 2013 à 22:56
Comme précisé dans la description, je fournis un programme appelé Alpha Edit qui permet de créer les fichiers hmap.
A noter que c'est un code vieux de 9 ans maintenant !
Enfin, c'est fonctionnel, n'y vois qu'une valeur éducative :)
cs_NewbiZ Messages postés 4 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 7 mai 2013
7 mai 2013 à 15:16
Ben d'après ce qu'il a marqué dans la description, tu peux faire ta heightmap dans photoshop ou autre, et l'exporter en "TGA - True Color - Black&White - RLE", récupérer la section de data, et ajouter son petit header au début du fichier.
nana35600 Messages postés 2 Date d'inscription vendredi 3 mai 2013 Statut Membre Dernière intervention 7 mai 2013
7 mai 2013 à 14:30
salut!!
je voulais savoir comment tu crées ton fichier hmap !!!
merci
cs_NewbiZ Messages postés 4 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 7 mai 2013
2 juin 2006 à 16:05
un bon tutorial sur les heightmaps a cette adresse :
http://www.games-creators.org/wiki/OpenGL:HeightMap
:)
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
18 juil. 2004 à 16:58
ba oui, je faisait deja ca dans mon doom like (distance d'affichage), et apres tu fou le fog pour masquer l'apparition des polygone
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
18 juil. 2004 à 16:31
'tain c'est pas con ça non plus :p
Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008
18 juil. 2004 à 14:46
Ou meme, une option simple, c est un lod adaptatif :
Plus t es loin, moins t affiche de polygone.
Avec une heightmap, c est simplissime a coder, mais c est chiant a adapter (faut trouver combien d iterations sont bien pour chaque distances).
Apres, rien ne t empeche de coupler ca avec un quadtree.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
18 juil. 2004 à 13:02
Ok, ben de toutes façons vous avez tous les 2 raisons, merci de vos explications ;)
Apparemment j'ai besoin de performances de toutes façons, donc je vais me chercher un tutorial et essayer d'implémenter ça.
Merci :)
Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008
18 juil. 2004 à 11:50
Content de voir que je suis pas seul a penser ca :)
C' est quand même une meilleure explication que celle que je t'ai passée (jme souvenais en gros de l'idée, mais il me manquait les détails). Pour le frustum culling, gluPerspective te définit le cone de vision. Apres c' est à toi de tester si un polygone est dans ce cone (on l' affiche) ou pas (on teste alors le polygone suivant).
C' est pas dur a faire, et ca s'implémente tres rapidement.
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
18 juil. 2004 à 09:32
Funto > non, le gluPerspective te fait juste limiter le filllrate, comme le culll facing ;)

sinon ca serait trop facile

le view frustum culling c'est afficher uniquement les polygone se trouvant dans le frustum

pour le quadtree, c'est une bonne solution pour y arriver car c'est assez simple au fond, surtout par rapport au bsp trees

avec quadtree tu va partitionner ta scene suivant un plan 2d (et 3d pour les octree)

le but du quadtree c'est de diviser ta scene, c'est à dire la liste des polygone, en paquet de n polygones par exemple, suivant leur position geographique, dans le but apres de ne plus traiter les polygone un par un mais par paquet de n polygone !

pour ce faire il faut construire l'arbre (un quad tree c'est tout simplement un arbre quaternaire, chaque sous arbre possede 4 fils)
la construction de l'arbre est bien sur precalculée
tu commence par definir un carre ( sur le plan horizontale ) qui englobe toute a scene, en suite tu divise ce carré en 4 carré (en coupant au milieu pour avoir 4 carré identiques) qui seront les 4 fils de cet arbre avec chacun leur propres nombres de polygone
tu fais ca recursivement jusqu'a ce que tu atteignepour chaque carré un nombre de polygones n par defaut.
tu te retrouve alors avec un arbre, definissant des carré de taille variable (plus les polygones sont concentré et plus le carré est petit)

ta scene vu de haut sera alors un maillage fait avec ces carrés, et pour ton view frustum culling, au lieu d'avoir a tester tout les polygon de ta scene avec tes calcul qui donnent mal à la tete, tu aura juste à tester un poignée de carré de manier simple et efficace car ce sont des carré et il te suffira juste, en gros, de savoir si un des coins du carré se trouve dans le frustum

c'est pas beau tout ca !
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
18 juil. 2004 à 00:18
Ben non, tout ce qui a rapport avec GLUT, OpenGL et tout ça, je considère pas que j'ai besoin de le commenter, le but de la source n'est pas d'apprendre à qq1 à ouvrir une fenêtre avec GLUT et à utiliser OpenGL, c'est plutôt de montrer comment marchent les heightmaps, donc c'est adressé à ceux qui connaissent au moins un minimum d'OpenGL ^^
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
17 juil. 2004 à 23:40
effectivement c'est commenté :)
mais tu n'as pas commenté tout les fichiers du code, alors je regardé que un seul fichier (qui lui n'est pas commenté)... mais bon ca va :)
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
17 juil. 2004 à 23:40
effectivement c'est commenté :)
mais tu n'as pas commenté tout les fichiers du code, alors je regardé que un seul fichier (qui lui n'est pas commenté)... mais bon ca va :)
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
17 juil. 2004 à 23:34
LordBob >> Je viens de télécharge rpour tester, les commentaires y sont...et je vois mal comment en mettre plus lol, de toutes façons le code est plus explicite que les commentaires je trouve.

Cyberboy >> A partir du moment où j'ai un :
gluPerspective(45.0, (GLdouble)w/(GLdouble)h, 1, 200);
dans mon Reshape() je fais de frustum culling non?
Pour le quadtree euh...je suis pas sûr de savoir même exactement ce que c'est lol.
"Quoique pour un truc petit tu t en fous .... mais si tu compte augmenter la taille, réfléchis y également ..." -> ben c'est juste un morceau du code d'un jeu plus...ambitieux :)
Donc oui on peut dire que je compte augmenter la taille, et si j'ai des problèmes de vitesse ben je penserai à toi pour les quadtrees ;)
Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008
17 juil. 2004 à 23:24
non jparlais minimum de frustum culling, parce que la ca va ramer des que tu vas ajouter quelques triangles.
Puis si t es chaud tu inclue aussi un quadtree, et la ca déchire :)
Quoique pour un truc petit tu t en fous .... mais si tu compte augmenter la taille, réfléchis y également ...
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
17 juil. 2004 à 22:13
alors je viens de prendre l'upload, l'exe marche par contre les commentaires, il n'y sont pas je reveindrai plus tard, ptete que l'upload na pas encore été pris en compte!!!
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
17 juil. 2004 à 21:53
2ème upload : maintenant y'a des commentaires ET un exe qui marche.
Que demande le peuple :p
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
17 juil. 2004 à 21:27
Voilà c'est uploadé. Par contre pour les commentaires j'ai pas encore fait, LordBob.
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
17 juil. 2004 à 21:22
Oui mais je pense que je viens de trouver l'erreur là :)
J'uploade.
En fait, c'est juste un "4" à remplacer par un "5"...
Le fichier herbe.tga pouvait pas s'ouvrir parce qu'en fait le caractère nul de fin de chaîne était placé une case trop loin dans le char[] ^^
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
17 juil. 2004 à 21:14
xp pro aussi

toi t sous 98 Funto ?
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
17 juil. 2004 à 21:12
pour ma config je pense pas que ce soit necessaire que je detaille, j'ai une GeForce 4, et je tourne sous XP Pro
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
17 juil. 2004 à 21:08
Arf, c'est ce que je craignais : pour une raison que je ne connais pas encore ça ne marche que chez certaines personnes O_o. Vous pouvez me donner vos configs svp?

Sinon pour les commentaires c'est vrai que j'en ai pas mis, mais bon si j'explique ça va être long :'(.......
Ensuite, pour le couple fichier par fonction, en fait c'est parce que ce prog c'est juste un prog de test de la calsse HeightMap, en lui-même il est inutile et j'ai pas cherché à l'orienter objet.
Sinon j'aurais pas fait le prog avec GLUT non plus ;)
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
17 juil. 2004 à 19:25
ouais moi non plus quand je lance le prog ca ne fait rien, l'auteur dit de le recompiler pour qu'il marche, moi j'ai pas le temps la...
sinon j'ai regaré vite fait le code, et j'en arrive a une constatation "ca manque horriblement de commentaire" !!!
ensuite pourquoi tu attribus un fichier unique a tes fonctions? je m'explique la fonction reshape occupe un fichier pour elle toute seul (pourtant meme pas 10 lignes de code !!!) est-ce vraiment necessaire?
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
17 juil. 2004 à 18:47
quand je lance ton prog ca fait rien ??
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
17 juil. 2004 à 15:33
Si tu parles du backface culling (c'est ce qu'il me semble...) cen c'est déjà fait :D
Ton idée de la texture qiu change est super, mais là où ça se corse c'est pour passer d'une texture à l'autre en douceur; un quad a telle texture ou telle autre...Encore que, à la limite, en mettant plein de textures en fonciton de la hauteur...ou mieux : en utilisant le multitexturing ^^
C'est pas con tiens je vais y réfléchir :p
Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008
17 juil. 2004 à 15:05
Rahlala j' étais meme pas au courant que tu faisais ca =D
C' est pas mal, mais au lieu d appliquer une seul texture a la carte, tu peux en appliquer une en fonction de la hauteur, genre de la neige si on se trouve a 3000 metres, de la terre si on est au "sol", de l herbe entre le "sol" et la neige ...
Bon apres va falloir penser a du culling ... je sais pas comment tu comptes t'y prendre, mais ca va pas etre une partie de plaisir, et va falloir virer la display list ... les vertex array, c est bien :) (enfin c' est plus adapté a un systeme d affichage adaptatif)
Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008
17 juil. 2004 à 15:05
Rahlala j' étais meme pas au courant que tu faisais ca =D
C' est pas mal, mais au lieu d appliquer une seul texture a la carte, tu peux en appliquer une en fonction de la hauteur, genre de la neige si on se trouve a 3000 metres, de la terre si on est au "sol", de l herbe entre le "sol" et la neige ...
Bon apres va falloir penser a du culling ... je sais pas comment tu comptes t'y prendre, mais ca va pas etre une partie de plaisir, et va falloir virer la display list ... les vertex array, c est bien :) (enfin c' est plus adapté a un systeme d affichage adaptatif)
Rejoignez-nous