En gráficos por computadora , un mapa de alturas o campo de alturas es una imagen rasterizada que se utiliza principalmente como cuadrícula global discreta en el modelado de elevación secundaria . Cada píxel almacena valores, como datos de elevación de la superficie , para su visualización en gráficos por computadora en 3D . Un mapa de alturas se puede utilizar en el mapeo de relieve para calcular dónde estos datos 3D crearían sombra en un material, en el mapeo de desplazamiento para desplazar la posición geométrica real de los puntos sobre la superficie texturizada o para el terreno donde el mapa de alturas se convierte en una malla 3D.
Un mapa de altura contiene un canal interpretado como una distancia de desplazamiento o "altura" desde el "suelo" de una superficie y, a veces, se visualiza como luma de una imagen en escala de grises , donde el negro representa la altura mínima y el blanco la altura máxima. Cuando se representa el mapa, el diseñador puede especificar la cantidad de desplazamiento para cada unidad del canal de altura, que corresponde al "contraste" de la imagen. Los mapas de altura se pueden almacenar por sí solos en formatos de imagen en escala de grises existentes, con o sin metadatos especializados , o en formatos de archivo especializados como los documentos Daylon Leveller, GenesisIV y Terragen .
También se puede aprovechar el uso de canales de color individuales para aumentar el detalle. Por ejemplo, una imagen RGB estándar de 8 bits solo puede mostrar 256 valores de gris y, por lo tanto, solo 256 alturas. Al usar colores, se puede almacenar una mayor cantidad de alturas (para una imagen de 24 bits, se pueden representar 256 3 = 16 777 216 alturas (256 4 = 4 294 967 296 si también se usa el canal alfa)). Esta técnica es especialmente útil cuando la altura varía ligeramente en un área grande. Al usar solo valores de gris, ya que las alturas deben asignarse a solo 256 valores, el terreno renderizado aparece plano, con "escalones" en ciertos lugares.
Los mapas de altura se utilizan comúnmente en los sistemas de información geográfica , donde se denominan modelos digitales de elevación .
Los mapas de altura se pueden crear a mano con un programa de pintura clásico o con un editor de terrenos especial. Estos editores visualizan el terreno en 3D y permiten al usuario modificar la superficie. Normalmente existen herramientas para elevar, bajar, suavizar o erosionar el terreno. Otra forma de crear un terreno es utilizar un algoritmo de generación de terreno. Este puede ser, por ejemplo, una función de ruido simplex 2D [1] o mediante agregación limitada por difusión . [2] Otro método es reconstruir mapas de altura a partir de datos del mundo real, por ejemplo, utilizando un radar de apertura sintética . [3]
Los mapas de altura se utilizan ampliamente en el software de renderizado de terrenos y en los videojuegos modernos . Los mapas de altura son una forma ideal de almacenar elevaciones de terreno digitales; en comparación con una malla poligonal regular, requieren sustancialmente menos memoria para un nivel de detalle determinado. La mayoría de los programas de modelado informático 3D modernos son capaces de utilizar datos de mapas de altura en forma de mapas de relieve , normales o de desplazamiento para crear terrenos complejos y otras superficies de forma rápida y precisa.
En los primeros juegos que utilizaban renderizado por software, los elementos solían representar alturas de columnas de vóxeles renderizados con proyección de rayos . En la mayoría de los juegos más nuevos, los elementos representan la coordenada de altura de los polígonos en una malla .
Aunque los términos heightmap y heightfield suelen ser indistinguibles entre sí, existe una pequeña diferencia entre ellos. Heightmap proviene del término matemático 'mapa' y heightfield proviene del término matemático 'campo vectorial'. Heightmap es la descripción más correcta porque la mayoría de los campos de altura no son un campo (vectorial) en términos matemáticos, sino que siempre son un mapa (tanto en términos matemáticos como en la representación visual).