In der Computergrafik ist eine Heightmap oder ein Heightfield ein Rasterbild, das hauptsächlich als diskretes globales Gitter in der sekundären Höhenmodellierung verwendet wird.

Jedes Pixel speichert Werte, wie z.B. Oberflächenhöhendaten, für die Darstellung in 3D-Computergrafiken.

Eine Heightmap kann beim Bump-Mapping verwendet werden, um zu berechnen, wo diese 3D-Daten Schatten in einem Material erzeugen würden, beim Displacement Mapping, um die tatsächliche geometrische Position von Punkten über die strukturierte Oberfläche zu verschieben, oder für Terrain, in dem die Heightmap in ein 3D-Mesh umgewandelt wird.

Was ist eine Heightmap?

Eine Heightmap enthält einen Kanal, der als Displacement oder „Height (Höhe)“ vom „Floor“ einer Oberfläche interpretiert und manchmal als Lume eines Graustufenbildes visualisiert wird, wobei Schwarz die minimale Höhe und Weiß die maximale Höhe darstellt. Wenn die Map gerendert wird, kann der Designer die Höhe der Verschiebung für jede Einheit des Height Channels festlegen, die dem „Kontrast“ des Bildes entspricht. Heightmaps können selbstständig in bestehenden Graustufenbildformaten, mit oder ohne spezielle Metadaten oder in speziellen Dateiformaten wie Daylon Leveller, GenesisIV und Terragen-Dokumenten gespeichert werden.

Man kann auch die Verwendung einzelner Farbkanäle nutzen, um die Details zu vergrößern. So kann beispielsweise ein Standard-RGB-8-Bit-Bild nur 256 Grauwerte und damit nur 256 Höhen anzeigen. Durch die Verwendung von Farben kann eine größere Anzahl von Höhen gespeichert werden (bei einem 24-Bit-Bild können 2563 = 16.777.216 Höhen dargestellt werden (2564 = 4.294.967.296, wenn auch der Alpha-Kanal verwendet wird)). Diese Technik ist besonders nützlich, wenn die Höhe über eine große Fläche leicht variiert. Nur mit Grauwerten, da die Höhen auf nur 256 Werte abgebildet werden müssen, erscheint das gerenderte Terrain flach, mit „Stufen“ an bestimmten Stellen.

Heightmaps werden häufig in geografischen Informationssystemen verwendet, wo sie als digitale Höhenmodelle bezeichnet werden.

Erstellen von Heightmaps.

Heightmaps können von Hand mit einem klassischen Painting-Programm oder einem speziellen Geländeeditor erstellt werden. Diese Editoren visualisieren das Gelände in 3D und ermöglichen es dem Nutzer, die Oberfläche zu verändern. Normalerweise gibt es Werkzeuge, um das Gelände anzuheben, abzusenken, zu glätten oder zu erodieren. Eine weitere Möglichkeit, ein Gelände zu erstellen, besteht darin, einen Geländegenerationsalgorithmus zu verwenden. Dies kann z.B. eine 2D-Simplex-Rauschfunktion oder durch diffusionsbegrenzte Aggregation sein. Eine weitere Methode ist die Rekonstruktion von Heightmaps aus realen Daten, z.B. mit einem Radar mit synthetischer Apertur.

Programme, die Heightmaps nutzen.

Heightmaps werden häufig in Geländewiedergabesoftware und modernen Videospielen verwendet. Heightmaps sind eine ideale Möglichkeit, digitale Geländehöhen zu speichern. Im Vergleich zu einem normalen polygonalen Mesh benötigen sie bei einem bestimmten Detaillierungsgrad wesentlich weniger Speicherplatz. Die meisten modernen 3D-Computermodellierungsprogramme sind in der Lage, Daten aus Heightmaps in Form von Bump-, Normal- oder Displacement-Maps zu verwenden, um schnell und präzise komplexes Gelände und andere Oberflächen zu erstellen.

In den ersten Spielen mit Software-Rendering stellten die Elemente oft die Höhen von Säulen von Voxeln dar, die mit Ray Casting gerendert wurden. In den meisten neueren Spielen stellen die Elemente die Höhenkoordinate von Polygonen in einem Mesh dar.

Vielen Dank für ihren Besuch.