GRID · capas del terreno
Familia de rejillas binarias con una cabecera común de 20 bytes. Cada capa tiene su propio tamaño de celda y profundidad.
Edición documentada: Imperivm HD · Documentación parcial
Un mapa, varias rejillas
Sección titulada «Un mapa, varias rejillas»El mapa utiliza capas separadas para terreno, altura, iluminación, transiciones, decoración y transitabilidad. Comparten una cabecera, pero no son intercambiables.
La firma visible al leer los cuatro primeros bytes es DIRG. El nombre GRID se refiere a la familia del formato; escribir literalmente GRID como firma produciría otros bytes.
Cabecera común
Sección titulada «Cabecera común»LE significa little-endian. Los datos de la capa comienzan después de los 20 bytes de cabecera. width y height son dimensiones lógicas: no deben confundirse directamente con el número de columnas y filas de celdas.
| Posición en bytes | Tipo | Campo |
|---|---|---|
| 0 | 4 bytes | Firma ASCII DIRG |
| 4 | uint32 LE | cell_size: dimensión de celda |
| 8 | uint32 LE | bits_per_cell: bits por celda |
| 12 | uint32 LE | width: anchura lógica |
| 16 | uint32 LE | height: altura lógica |
Valores por capa
Sección titulada «Valores por capa»En dimensiones divisibles por cell_size, las columnas y filas de celdas se obtienen dividiendo width y height por ese valor. Estos valores son propios de cada variante; cambiar la profundidad en la cabecera no convierte automáticamente los datos.
La variante de transitabilidad utiliza un bit por celda de 16 unidades. Los archivos .pass de huellas de entidades comparten esa cabecera y variante, aunque sus dimensiones y su uso sean diferentes.
| Archivo | cell_size | bits_per_cell |
|---|---|---|
| Terrain.terrain.grid | 64 | 8 |
| Terrain.height.grid | 32 | 8 |
| Terrain.light.grid | 32 | 8 |
| Terrain.trans.grid | 64 | 4 |
| Terrain.decor.grid | 64 | 16 |
| Terrain.pass.grid | 16 | 1 |
Límites conocidos
Sección titulada «Límites conocidos»La cabecera no explica por sí sola el significado completo de cada valor del terreno, altura, luz o decoración. Tampoco se especifican aquí todos los detalles de empaquetado, alineación o del orden de los bits de cada capa.
No deduzcas el rango de alturas, la unidad de iluminación, el significado de cada índice ni los tamaños de mapa admitidos únicamente a partir del tipo de celda.