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

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 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

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

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 :

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

  1. (en) « Heightmap », sur Computer Graphics (consulté le )
  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 )
  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 )
  4. (en) scrawk, « Using DEM data to create height maps »(Archive.orgWikiwixArchive.isGoogle • Que faire ?), sur ScrawkBlog, (consulté le )
  5. (en) « Creating and Using Custom Heightmaps and Layers », sur docs.unrealengine.com (consulté le )
  6. (en) Unity Technologies, « Unity - Manual: Height Tools », sur docs.unity3d.com (consulté le )
  7. (en) « Map Editor - Cities: Skylines Wiki », sur www.skylineswiki.com (consulté le )
  8. (en) « Heightmaps for Skyrim at Skyrim Nexus - mods and community », sur www.nexusmods.com (consulté le )

Liens externes

  • Portail de l'informatique théorique
  • Portail de l’imagerie numérique
  • Portail des mathématiques
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.