Heightmap opengl

1/5 (27 avis)

Vue 14 450 fois - Téléchargée 1 156 fois

Description

Utilisez les flèches pour vous déplacer. Si ça ne marche pas chez vous essayez de recompiler (il vous faudra GLUT et OpenGL, que vous pouvez trouver à http://site.voila.fr/allbrain/dev.zip si vous utilisez Dev-C++ ou http://site.voila.fr/allbrain/VisualC.zip si vous utilisez Visual C++)


C'est un système de heightmaps; le principe, c'est qu'à partir d'une image 2D en niveaux de gris, on en ressort un terrain, où les points les plus hauts correspondent aux points les plus foncés de l'image 2D.
Si je suis pas clair, regardez heightmap.bmp et le résultat de HeightMap.exe, et comparez...;)

J'ai créé mon propre format de heightmaps, le HMAP. En fait, il est composé comme ça :
-le 1er octet renseigne sur l'endroit où débutent les données de la map
-les 4 octets qui suivent représentent, en little endian, la largeur et la hauteur de la map
-après on a le nom du fichier TGA associé à la heightmap, qui lui sert de texture
-enfin, il y a les données proprement dites. Chaque pixel est codé par 1 seul octet et le tout est compressé en RLE (mêmes conventions que pour le format TGA).

Pour enregister en HMAP il faut utiliser Alpha Edit à partir de la version 3.1. Si vous voulez créer vos propres heightmaps donc, c'est là : http://www.cppfrance.com/code.aspx?ID=24551
(J'ai pas pu mettre l'exe d'Alpha Edit dans le zip c'était trop gros :( )

Source / Exemple :


Dans le zip

Conclusion :


Remerciements à cppdupdup34 pour m'avoir longuement expliqué (j'ai mis longtemps à comprendre :p) comment est-ce qu'on fait pour faire un déplacement de la caméra "à la doom-like". En fait ce code est un morceau du code d'un jeu qu'on est en train de vous préparer :)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
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)
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
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 ??
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?

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.