Champ de hauteur

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche

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[modifier | modifier le code]

Champ de hauteur créé avec Terragen.
Le même champ de hauteur converti en un mesh 3D.

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.

Exemple d'utilisation d'un champ de hauteur dans le displacement mapping.

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 :

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 endroit, 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[modifier | modifier le code]

Champ de hauteur de la surface terrestre, prenant en compte l'eau et la glace (projection équirectangulaire, nuances de gris)

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[modifier | modifier le code]

Générateurs de paysages[modifier | modifier le code]

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 :

Moteurs de jeu[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. (en) « Heightmap », sur Computer Graphics (consulté le 12 mai 2016)
  2. « Je crée mon jeu vidéo E10 : génération procédurale de carte (partie 1) - LinuxFr.org », sur linuxfr.org (consulté le 12 mai 2016)
  3. « Je crée mon jeu vidéo E11 : génération procédurale de carte (partie 2) - LinuxFr.org », sur linuxfr.org (consulté le 12 mai 2016)
  4. (en) scrawk, « Using DEM data to create height maps »(ArchiveWikiwixArchive.isGoogleQue faire ?), sur ScrawkBlog, (consulté le 12 mai 2016)
  5. (en) « Creating and Using Custom Heightmaps and Layers », sur docs.unrealengine.com (consulté le 11 mai 2016)
  6. (en) Unity Technologies, « Unity - Manual: Height Tools », sur docs.unity3d.com (consulté le 11 mai 2016)
  7. (en) « Map Editor - Cities: Skylines Wiki », sur www.skylineswiki.com (consulté le 12 mai 2016)
  8. (en) « Heightmaps for Skyrim at Skyrim Nexus - mods and community », sur www.nexusmods.com (consulté le 12 mai 2016)

Liens externes[modifier | modifier le code]