Champ de hauteur
En infographie, un champ de hauteur, ou heightmap sous son appellation anglaise, est une image matricielle stockant un déplacement par rapport à une surface, dans le but de réaliser ensuite un rendu tridimensionnel.
Principe
Un champ de hauteur classique est une image matricielle ne contenant qu'un seul canal, et est donc souvent visualisé comme une image en nuances de gris. Il est interprété comme un déplacement par rapport à une surface : en particulier le noir représente la distance minimum et le blanc la distance maximale.
Ces distances peuvent être interprétées comme une élévation par rapport à un plan, et permettent alors de représenter une surface, comme un terrain dans les images de synthèse par exemple. Un rendu tridimensionnel peut alors être fait en créant un mesh à partir du champ de hauteur.
Les champs de hauteur sont aussi utilisés dans plusieurs techniques d'infographie permettant de donner du relief à des modèles bi- ou tridimensionnels ou à des textures :
- Bump mapping (ou placage de relief)
- Normal mapping
- Parallax mapping
- Displacement mapping
Une image classique codée en 24 bits (8 bits par couleurs) permet de stocker 28 = 256 nuances de gris et donc comporter seulement 256 valeurs possibles différentes, ce qui est trop faible pour un relief détaillé. Il est ainsi possible d'utiliser des formats particuliers, par exemple un seul canal mais codé sur 16 bits, permettant alors 216 = 65 536 valeurs différentes. Il est aussi possible de tirer parti des différents canaux de couleurs : pour une image 24 bits, il est ainsi possible d'atteindre 224 = 16 777 216 hauteurs différentes, ou même 232 = 4 294 967 296 si le canal alpha d'une image 32 bits est utilisé. Ces techniques sont surtout utiles quand la hauteur varie beaucoup sur une grande surface. N'utiliser que des nuances de gris pourrait en effet rendre le terrain « plat » par endroits, comme des escaliers.
Une telle image est souvent enregistrée en format RAW, mais ce dernier ne permettant entre autres pas de stocker la taille de l'image, les formats BMP, TGA, ou PNG sont aussi utilisés[1].
Génération
Divers algorithmes permettent la création de champs de hauteur, produisant des terrains fractals dont le but est de ressembler à des terrains naturels :
Des traitements additionnels sont souvent ajoutés pour accroître le réalisme des terrains, comme la simulation de l'érosion et de la sédimentation[2] ou l'ajout de cours d'eau[3].
Un champ de hauteur peut aussi être obtenu par mesure d'un véritable lieu géographique. Ils sont ainsi utilisés dans les systèmes d'information géographique en tant que modèle numérique de terrain[4].
Utilisation
Générateurs de paysages
Des logiciels dits générateurs de paysages permettent de créer des terrains et d'en faire un rendu, notamment en utilisant des champs de hauteur. Entre autres :
- Un lac créé et rendu avec Terragen
- Des montagnes créées et rendues dans Terragen
- Un autre paysage créé et rendu dans Picogen
Moteurs de jeu
Certains moteurs de jeu permettent l'utilisation de champs de hauteur dans une scène pour importer un terrain. C'est par exemple le cas de Unreal Engine ou encore de Unity, proposant l'importation de champs de hauteur en nuances de gris, 16 bits et au format RAW[5],[6]. Chacun permet ensuite la modification du terrain créé avec différents outils de modélisation.
Jeux vidéo
Beaucoup de jeux vidéo 3D utilisent les champs de hauteur pour créer et enregistrer des terrains, rendus ensuite plus réalistes par des cartes de texture. Ce système permet entre autres aux joueurs de créer leurs propres champs de hauteur et donc leurs propres terrains dans le jeu. On retrouve notamment :
Annexes
Notes et références
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Heightmap » (voir la liste des auteurs).
- (en) « Heightmap », sur Computer Graphics (consulté le )
- « Je crée mon jeu vidéo E10 : génération procédurale de carte (partie 1) - LinuxFr.org », sur linuxfr.org (consulté le )
- « Je crée mon jeu vidéo E11 : génération procédurale de carte (partie 2) - LinuxFr.org », sur linuxfr.org (consulté le )
- (en) scrawk, « Using DEM data to create height maps »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur ScrawkBlog, (consulté le )
- (en) « Creating and Using Custom Heightmaps and Layers », sur docs.unrealengine.com (consulté le )
- (en) Unity Technologies, « Unity - Manual: Height Tools », sur docs.unity3d.com (consulté le )
- (en) « Map Editor - Cities: Skylines Wiki », sur www.skylineswiki.com (consulté le )
- (en) « Heightmaps for Skyrim at Skyrim Nexus - mods and community », sur www.nexusmods.com (consulté le )
Liens externes
- Site permettant de récupérer un champ de hauteur de n'importe quel endroit sur Terre, fait pour le jeu Cities: Skylines : http://terrain.party/
- Portail de l'informatique théorique
- Portail de l’imagerie numérique
- Portail des mathématiques