The Best Resource for Minecraft
The Best Resource for Minecraft

Ang isang pixel ng mapa ay isang byte, at ang dalawa sa mga bit nito ay liwanag

Ang isang pixel ng mapa ay isang byte, at ang dalawa sa mga bit nito ay liwanag

61 pangunahing kulay × 4 na shade = 244 kulay mula sa isang 16,384-byte na array. Isa lang sa apat na shade ang totoong kulay ng bloke; ang iba pang tatlo ay pinadilim sa 86%, 71% at 53%.

Ang bawat napunong mapa sa Minecraft ay magkapareho ang laki sa disk: isang colors byte array of exactly 16,384 mga entry, na 128 × 128. Totoo iyan sa isang scale-0 na mapa na sumasakop sa 128 bloke at sa isang scale-4 na mapa na sumasakop sa 2,048 bloke — hindi nagbabago ang bilang ng pixel. Ang lahat ng iba pa tungkol sa map art ay sumusunod mula sa nag-iisang katotohanang iyon.

Naghahati ang byte sa dalawa

Bawat isa sa 16,384 na byte na iyon ay hindi isang kulay. Ito ay isang pangunahing kulay at isang shade na pinagsama:

baseColorId = colorId >> 2      // 0–63
shadeIndex  = colorId & 3       // 0–3

Kaya ang dalawang mababang bit ay liwanag at ang natitira ay kung aling bloke ang tinitingnan mo. Sa 61 mga tinukoy na pangunahing kulay (ang id 0 ay ang transparent/hindi pa natutuklasang slot), ang pinakamataas na byte na hawak ng isang totoong mapa ay 61 × 4 + 3 = 247.

61 × 4 = 244 natatanging kulay, na siyang buong palette na magagamit para sa map art. Hindi 61, at hindi 256.

Isa lang na shade ang aktwal na kulay ng bloke

Ang apat na multiplier ay hindi pantay ang pagitan, at ang isa sa mga ito ay 1.0:

index ng shademultiplierbilang porsyento
0180 / 25570.6%
1220 / 25586.3%
2255 / 255100%
3135 / 25552.9%

Shade 2 ay ang kulay ng texture ng bloke, na hindi nabago. Ang iba pang tatlo ay mas madidilim na bersyon nito, at ang pinakamadilim — shade 3 — ay mahigit kalahati lang ng liwanag.

Ito ang dahilan kung bakit ibang-iba ang hitsura ng staircased na map art sa isang patag. Ang isang patag na gawa ay makakagawa lamang ng isa sa apat na ito bawat bloke, kaya ang isang patag na mapa ay may 61 kulay na magagamit. Ang pag-iiba-iba ng taas ay nagbubukas sa iba pang tatlong shade ng bawat bloke at dinadala ka sa 244. Ang palette ay hindi nagiging mas malawak — wala kang nakukuhang mga bagong hue — nagiging apat na beses itong mas malalim sa halaga, na siyang eksaktong kailangan ng dithering.

Tandaan din na ang pagkakasunod-sunod ng shade ay hindi monotonic: ang index 3 ang pinakamadilim, hindi ang pinakamaliwanag. Ang pag-uri-uri ayon sa index at pag-asa sa isang gradient ay magbibigay sa iyo ng 71%, 86%, 100%, 53%.

Pinararami ng scale ang lawak, hindi kailanman ang resolution

Ang scale field runs 0–4, at ang lupang sakop nito ay 128 × 2^scale blocks on a side:

scalemga sakop na blokeang isang pixel ng mapa ay
0128 × 1281 bloke
1256 × 2562 × 2 bloke
2512 × 5124 × 4 na bloke
31,024 × 1,0248 × 8 bloke
42,048 × 2,04816 × 16 na bloke — eksaktong isang chunk

Ang isang scale-4 na mapa ay sumasakop sa 256 beses ng lawak ng isang scale-0 na mapa gamit ang parehong 16,384 byte. Iyon ang buong dahilan kung bakit kailangang buuin ang map art sa scale 0: sa anumang iba pang zoom, ang isang pixel ay average ng ilang mga bloke at ang imaheng maingat mong inilagay ay nawawala sa muling pag-sample.

Ang scale-4 na hilera ay nararapat tandaan sa ibang dahilan — ang isang pixel ay eksaktong isang chunk, na ginagawang magagamit na chunk grid ang isang ganap na naka-zoom na mapa.

Ang ibig sabihin nito para sa isang sirang file

Kung ang isang map_<id>.dat has a colors array that is not 16,384 bytes, it is not a map with missing pixels — it is not a readable map at all. There is no partial-length form. The array is always full-size, with unexplored areas stored as colour id 0 rather than omitted.

Subukan ang tool: Map Art Extractor →