지도 픽셀은 1바이트이며, 그중 2비트는 밝기입니다
61가지 기본 색상 × 4가지 음영 = 16,384바이트 배열에서 244가지 색상. 4가지 음영 중 하나만이 블록의 실제 색상이며, 나머지 3가지는 86%, 71%, 53%로 어둡게 처리됩니다.
마인크래프트의 모든 채워진 지도는 디스크에서 동일한 크기입니다. 정확히 16,384개의 항목으로 구성된 128 × 128 크기의 colors 바이트 배열입니다. 이는 128개 블록을 덮는 크기-0 지도와 2,048개 블록을 덮는 크기-4 지도 모두에 해당합니다. 픽셀 수는 절대 변하지 않습니다. 지도 예술에 대한 다른 모든 것은 이 한 가지 사실에서 비롯됩니다.
바이트가 둘로 나뉩니다
16,384바이트 각각은 색상이 아닙니다. 기본 색상과 음영이 함께 압축되어 있습니다.
baseColorId = colorId >> 2 // 0–63
shadeIndex = colorId & 3 // 0–3
따라서 하위 2비트는 밝기이고 나머지는 보고 있는 블록을 나타냅니다. 61가지 기본 색상이 정의되어 있으며 (ID 0은 투명/탐험되지 않은 슬롯), 실제 지도가 가질 수 있는 가장 높은 바이트는 61 × 4 + 3 = 247입니다.
61 × 4 = 244가지 고유 색상으로, 이는 지도 예술에 사용할 수 있는 전체 팔레트입니다. 61가지도 아니고 256가지도 아닙니다.
한 가지 음영만이 블록의 실제 색상입니다
네 가지 승수는 균등하게 분포되어 있지 않으며, 그중 하나는 1.0입니다.
| 음영 인덱스 | 승수 | 백분율 |
|---|---|---|
| 0 | 180 / 255 | 70.6% |
| 1 | 220 / 255 | 86.3% |
| 2 | 255 / 255 | 100% |
| 3 | 135 / 255 | 52.9% |
음영 2는 블록의 텍스처 색상이며, 변경되지 않습니다. 나머지 세 가지는 더 어두운 버전이며, 가장 어두운 음영 3은 밝기의 절반을 약간 넘습니다.
이것이 계단식 지도 예술이 평평한 지도 예술과 매우 다르게 보이는 이유입니다. 평평한 구조물은 블록당 이 네 가지 중 하나만 생성할 수 있으므로, 평평한 지도는 61가지 색상을 사용할 수 있습니다. 높이를 변경하면 각 블록의 다른 세 가지 음영이 잠금 해제되어 244가지가 됩니다. 팔레트가 넓어지는 것이 아니라 (새로운 색조는 얻지 못함) 값이 네 배 깊어져 디더링에 필요한 것을 정확히 제공합니다.
또한 음영 순서가 단조롭지 않다는 점에 유의하십시오. 인덱스 3이 가장 어둡고 가장 밝지 않습니다. 인덱스별로 정렬하고 그라데이션을 기대하면 71%, 86%, 100%, 53%가 됩니다.
크기는 면적을 곱하며, 해상도는 곱하지 않습니다
scale 필드는 0–4 범위이며, 덮는 지면은 한 변이 128 × 2^scale 블록입니다.
| 크기 | 덮는 블록 | 지도 픽셀 하나는 |
|---|---|---|
| 0 | 128 × 128 | 1 블록 |
| 1 | 256 × 256 | 2 × 2 블록 |
| 2 | 512 × 512 | 4 × 4 블록 |
| 3 | 1,024 × 1,024 | 8 × 8 블록 |
| 4 | 2,048 × 2,048 | 16 × 16 블록 — 정확히 한 청크 |
크기-4 지도는 동일한 16,384바이트를 사용하여 크기-0 지도의 256배 면적을 덮습니다. 이것이 지도 예술이 크기 0으로 만들어져야 하는 전체 이유입니다. 다른 확대/축소에서는 한 픽셀이 여러 블록의 평균이며, 신중하게 배치한 이미지가 다시 샘플링되어 사라집니다.
크기-4 행은 다른 이유로 기억할 가치가 있습니다. 한 픽셀이 정확히 한 청크이므로, 완전히 확대된 지도는 유용한 청크 그리드가 됩니다.
손상된 파일에 대한 의미
map_<id>.dat에 16,384바이트가 아닌 colors 배열이 있는 경우, 픽셀이 누락된 지도가 아니라 전혀 읽을 수 없는 지도입니다. 부분 길이 형식은 없습니다. 배열은 항상 전체 크기이며, 탐험되지 않은 영역은 생략되지 않고 색상 ID 0으로 저장됩니다.