Harita pikseli bir bayttır ve iki biti parlaklıktır
61 ana renk × 4 ton = 16.384 baytlık bir diziden 244 renk. Dört tondan sadece biri bloğun gerçek rengidir; diğer üçü %86, %71 ve %53 oranında koyulaştırılmıştır.
Minecraft'taki her dolu Harita, diskte aynı boyuttadır: tam olarak 16.384 girişten oluşan, yani 128 × 128'lik bir colors bayt dizisi. Bu, 128 bloğu kapsayan bir Ölçek-0 Harita ve 2.048 bloğu kapsayan bir Ölçek-4 Harita için geçerlidir; piksel sayısı asla değişmez. Harita sanatı ile ilgili her şey bu tek gerçeğe dayanır.
Bayt ikiye ayrılır
Bu 16.384 baytın her biri bir renk değildir. Bir ana renk ve bir ton bir araya getirilmiştir:
baseColorId = colorId >> 2 // 0–63
shadeIndex = colorId & 3 // 0–3
Yani düşük iki bit parlaklıktır ve geri kalanı hangi bloğa baktığınızdır. Tanımlanmış 61 ana renk ile (id 0 şeffaf/keşfedilmemiş yuvadır), gerçek bir Harita'nın tuttuğu en yüksek bayt 61 × 4 + 3 = 247'dir.
61 × 4 = 244 farklı renk, Harita sanatı için mevcut tüm palettir. 61 değil, 256 da değil.
Sadece bir ton bloğun gerçek rengidir
Dört çarpan eşit aralıklı değildir ve bunlardan biri 1.0'dır:
| ton indeksi | çarpan | yüzde olarak |
|---|---|---|
| 0 | 180 / 255 | %70.6 |
| 1 | 220 / 255 | %86.3 |
| 2 | 255 / 255 | %100 |
| 3 | 135 / 255 | %52.9 |
Ton 2, bloğun doku rengidir, dokunulmamıştır. Diğer üçü daha koyu versiyonlarıdır ve en koyu olanı — ton 3 — parlaklığın sadece yarısından biraz fazlasıdır.
Merdivenli Harita sanatının düz bir Harita'dan neden bu kadar farklı görünmesinin nedeni budur. Düz bir yapı, her blok için bu dördünden yalnızca birini üretebilir, bu nedenle düz bir Harita'da 61 renk mevcuttur. Yüksekliği değiştirmek, her bloğun diğer üç tonunu açar ve sizi 244'e çıkarır. Palet genişlemez — yeni tonlar elde edemezsiniz — değeri dört kat derinleşir, bu da dithering'in tam olarak ihtiyacı olan şeydir.
Ton sıralamasının monotonik olmadığına da dikkat edin: indeks 3 en parlak değil, en koyudur. İndekse göre sıralama ve bir gradyan beklemek size %71, %86, %100, %53 verir.
Ölçek alanı çarpar, çözünürlüğü asla
scale alanı 0–4 arasında çalışır ve kapsadığı zemin bir kenarı 128 × 2^scale bloktur:
| Ölçek | kapsanan bloklar | bir Harita pikseli |
|---|---|---|
| 0 | 128 × 128 | 1 blok |
| 1 | 256 × 256 | 2 × 2 blok |
| 2 | 512 × 512 | 4 × 4 blok |
| 3 | 1.024 × 1.024 | 8 × 8 blok |
| 4 | 2.048 × 2.048 | 16 × 16 blok — tam olarak bir chunk |
Ölçek-4 bir Harita, aynı 16.384 baytı kullanarak Ölçek-0 bir Harita'nın 256 katı alanı kapsar. Harita sanatının Ölçek 0'da inşa edilmesinin tüm nedeni budur: başka herhangi bir yakınlaştırmada, bir piksel birkaç bloğun ortalamasıdır ve dikkatlice yerleştirdiğiniz görüntü yeniden örneklenerek kaybolur.
Ölçek-4 satırı farklı bir nedenle hatırlanmaya değerdir — bir piksel tam olarak bir chunk'tır, bu da tamamen yakınlaştırılmış bir Harita'yı kullanılabilir bir chunk ızgarası yapar.
Bozuk bir dosya için bunun anlamı
Bir map_<id>.dat'in 16.384 bayt olmayan bir colors dizisi varsa, eksik pikselli bir Harita değildir — hiç okunabilir bir Harita değildir. Kısmi uzunlukta bir biçim yoktur. Dizi her zaman tam boyuttadır, keşfedilmemiş alanlar atlanmak yerine renk id 0 olarak depolanır.