{
  "schema": "imperivm-format-article/v1",
  "language": "es",
  "scope": "Imperivm HD",
  "status": "partial",
  "slug": "terrain-grids",
  "title": "GRID · capas del terreno",
  "summary": "Familia de rejillas binarias con una cabecera común de 20 bytes. Cada capa tiene su propio tamaño de celda y profundidad.",
  "sections": [
    {
      "id": "purpose",
      "title": "Un mapa, varias rejillas",
      "paragraphs": [
        "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."
      ]
    },
    {
      "id": "header",
      "title": "Cabecera común",
      "table": {
        "columns": [
          "Posición en bytes",
          "Tipo",
          "Campo"
        ],
        "rows": [
          [
            "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"
          ]
        ]
      },
      "paragraphs": [
        "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."
      ]
    },
    {
      "id": "layers",
      "title": "Valores por capa",
      "table": {
        "columns": [
          "Archivo",
          "cell_size",
          "bits_per_cell"
        ],
        "rows": [
          [
            "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"
          ]
        ]
      },
      "paragraphs": [
        "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."
      ]
    },
    {
      "id": "limits",
      "title": "Límites conocidos",
      "paragraphs": [
        "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."
      ]
    }
  ]
}