{
  "schema": "imperivm-format-article/v1",
  "language": "it",
  "scope": "Imperivm HD",
  "status": "partial",
  "slug": "terrain-grids",
  "title": "GRID · livelli del terreno",
  "summary": "Famiglia di griglie binarie con un'intestazione comune di 20 byte. Ogni livello ha la propria dimensione di cella e profondità in bit.",
  "sections": [
    {
      "id": "purpose",
      "title": "Una mappa, più griglie",
      "paragraphs": [
        "La mappa usa livelli separati per terreno, altezza, illuminazione, transizioni, decorazione e transitabilità. Condividono l'intestazione ma non sono intercambiabili.",
        "La firma visibile nei primi quattro byte del file è DIRG. GRID è il nome della famiglia di formati; scrivere GRID letteralmente come firma produrrebbe byte diversi."
      ]
    },
    {
      "id": "header",
      "title": "Intestazione comune",
      "table": {
        "columns": [
          "Posizione in byte",
          "Tipo",
          "Campo"
        ],
        "rows": [
          [
            "0",
            "4 byte",
            "Firma ASCII DIRG"
          ],
          [
            "4",
            "uint32 LE",
            "cell_size: dimensione della cella"
          ],
          [
            "8",
            "uint32 LE",
            "bits_per_cell: bit per cella"
          ],
          [
            "12",
            "uint32 LE",
            "width: larghezza logica"
          ],
          [
            "16",
            "uint32 LE",
            "height: altezza logica"
          ]
        ]
      },
      "paragraphs": [
        "LE significa little-endian. I dati del livello seguono l'intestazione di 20 byte. Larghezza e altezza sono dimensioni logiche, non direttamente il numero di colonne e righe di celle."
      ]
    },
    {
      "id": "layers",
      "title": "Valori per livello",
      "table": {
        "columns": [
          "File",
          "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": [
        "Per dimensioni divisibili per cell_size, dividi larghezza e altezza per quel valore per ottenere colonne e righe di celle. Questi valori appartengono a ciascuna variante; cambiare la profondità in bit dell'intestazione non converte automaticamente i dati.",
        "La variante di transitabilità usa un bit per cella di 16 unità. I file .pass delle impronte delle entità condividono quell'intestazione e quella variante, anche se dimensioni e uso sono diversi."
      ]
    },
    {
      "id": "limits",
      "title": "Limiti noti",
      "paragraphs": [
        "L'intestazione da sola non spiega del tutto i valori di terreno, altezza, illuminazione o decorazione. Questa scheda non specifica nemmeno i dettagli di impacchettamento, allineamento o ordine dei bit di ogni livello.",
        "Non dedurre intervalli di altezza, unità di illuminazione, significati degli indici o dimensioni di mappa supportate dal solo tipo di cella."
      ]
    }
  ]
}