Un Height Field, o campo de alturas, es una estructura de datos que representa una superficie 2.5D (dos dimensiones espaciales más una dimensión de altura) mediante una matriz bidimensional de valores escalares. Cada elemento de la matriz corresponde a un punto en un plano (generalmente el plano XZ o XY) y almacena un único valor que representa la altura (coordenada Y o Z) de la superficie en esa posición. Esta representación es inherentemente limitada a superficies que no tienen voladizos o cuevas, ya que para cada coordenada (x, z) solo puede existir un único valor de altura (y). Su simplicidad lo hace eficiente para el almacenamiento y la manipulación de terrenos y superficies similares.

Los Height Fields son ampliamente utilizados en gráficos por computadora, especialmente en motores de videojuegos y simulaciones para modelar terrenos. Ejemplos concretos incluyen el terreno en juegos como 'Minecraft' (aunque con una representación voxelizada, la generación subyacente a menudo parte de un Height Field), 'Unity Terrain' y 'Unreal Engine Landscape' que utilizan Height Maps para definir la topografía. También se aplican en sistemas de información geográfica (GIS) para representar modelos digitales de elevación (DEMs) y en simulaciones físicas para definir la geometría de colisión de superficies complejas de forma eficiente.

Para un arquitecto de sistemas, comprender los Height Fields es crucial al diseñar soluciones que involucren la representación y manipulación de superficies. Su principal ventaja es la simplicidad y eficiencia en almacenamiento y procesamiento, lo que los hace ideales para grandes extensiones de terreno en tiempo real. Sin embargo, su limitación a superficies 2.5D significa que no pueden representar topologías arbitrarias con voladizos o cuevas, lo que podría requerir el uso de mallas poligonales (polygonal meshes) o voxels. La decisión de usar un Height Field implica un trade-off entre la complejidad de la geometría a representar y los requisitos de rendimiento y memoria. Un arquitecto debe evaluar si la simplicidad topológica del Height Field es suficiente para los casos de uso del sistema, o si la flexibilidad adicional de otras representaciones justifica la mayor complejidad y coste computacional.