A heightmap created with Terragen
The same heightmap converted to a 3D mesh and rendered with Anim8or

In computer graphics, a heightmap or heightfield is a raster image used mainly as Discrete Global Grid in secondary elevation modeling. Each pixel stores values, such as surface elevation data, for display in 3D computer graphics. A heightmap can be used in bump mapping to calculate where this 3D data would create shadow in a material, in displacement mapping to displace the actual geometric position of points over the textured surface, or for terrain where the heightmap is converted into a 3D mesh.

A heightmap contains one channel interpreted as a distance of displacement or "height" from the "floor" of a surface and sometimes visualized as luma of a grayscale image, with black representing minimum height and white representing maximum height. When the map is rendered, the designer can specify the amount of displacement for each unit of the height channel, which corresponds to the “contrast” of the image. Heightmaps can be stored by themselves in existing grayscale image formats, with or without specialized metadata, or in specialized file formats such as Daylon Leveller, GenesisIV and Terragen documents.

One may also exploit the use of individual color channels to increase detail. For example, a standard RGB 8-bit image can only show 256 values of grey and hence only 256 heights. By using colors, a greater number of heights can be stored (for a 24-bit image, 2563 = 16,777,216 heights can be represented (2564 = 4,294,967,296 if the alpha channel is also used)). This technique is especially useful where height varies slightly over a large area. Using only grey values, because the heights must be mapped to only 256 values, the rendered terrain appears flat, with "steps" in certain places.

Height map of planet earth at 2km per pixel, including oceanic bathymetry information, normalized as 8-bit grayscale

Heightmaps are commonly used in geographic information systems, where they are called digital elevation models.

Creation

edit

Heightmaps can be created by hand with a classical paint program or a special terrain editor. These editors visualize the terrain in 3D and allow the user to modify the surface. Normally there are tools to raise, lower, smooth or erode the terrain. Another way to create a terrain is to use a terrain generation algorithm. This can be for example a 2D simplex noise function [1] or by diffusion-limited aggregation.[2] Another method is to reconstruct heightmaps from real world data, for example using synthetic aperture radar.[3]

Use

edit

Heightmaps are widely used in terrain rendering software and modern video games. Heightmaps are an ideal way to store digital terrain elevations; compared to a regular polygonal mesh, they require substantially less memory for a given level of detail. Most modern 3D computer modelling programs are capable of using data from heightmaps in the form of bump, normal, or displacement maps to quickly and precisely create complex terrain and other surfaces.

In the earliest games using software rendering, the elements often represented heights of columns of voxels rendered with ray casting. In most newer games, the elements represent the height coordinate of polygons in a mesh.

Rendering software

edit

Generating software

edit

Trivia

edit

Although the terms heightmap and heightfield are often indistinguishable from each other, there is still a small difference in the terms. Heightmap comes from the mathematical term 'map' and heightfield comes from the mathematical term 'vector field'. Heightmap is the more correct description because most heightfields are not a (vector) field in mathematical terms but they are always a map (in mathematical terms as well as in the visual representation).

See also

edit

References

edit
  1. ^ Artificial Terrain Generation
  2. ^ DLA based Terrains
  3. ^ Kirscht, Martin, and Carsten Rinke. "3D Reconstruction of Buildings and Vegetation from Synthetic Aperture Radar (SAR) Images." MVA. 1998.
edit

📚 Artikel Terkait di Wikipedia

Diamond-square algorithm

The diamond-square algorithm is a method for generating heightmaps for computer graphics. It is a slightly better algorithm than the three-dimensional

Scenery generator

a diamond square algorithm. Most scenery generators can create basic heightmaps to simulate the variation of elevation in basic terrain. Common techniques

Picogen

terrain formation and image plausibility, it also is a heightmap-creation tool, in which heightmaps are programmed in a syntax reminiscent of Lisp. The shading

Voxel

Crysis, as well as Cryengine 2 and Cryengine 3, use a combination of heightmaps and voxels for their terrain systems. Cube World, an action role-playing

Bump mapping

Look up the height in the heightmap that corresponds to the position on the surface. Calculate the surface normal of the heightmap, typically using the finite

Mars

Mars surface map rendered using a color map and a heightmap from NASA

Transport Fever 3

public approval. An improved in-game map editor allows players to import heightmaps or sculpt landscapes from scratch. Infrastructure tools have been rebuilt

Fractal

determined by prior events Diamond-square algorithm – Method for generating heightmaps for computer graphics Droste effect – Recursive visual effect Feigenbaum