หนึ่งพิกเซลแผนที่คือหนึ่งไบต์ และสองบิตของมันคือความสว่าง
61 สีหลัก × 4 ระดับความสว่าง = 244 สี จากอาร์เรย์ขนาด 16,384 ไบต์ มีเพียงหนึ่งในสี่ระดับความสว่างเท่านั้นที่เป็นสีจริงของบล็อก ส่วนอีกสามระดับจะถูกทำให้มืดลงเหลือ 86%, 71% และ 53%
แผนที่ที่เติมเต็มทุกแผ่นใน Minecraft มี ขนาด เท่ากันบนดิสก์: อาร์เรย์ colors ไบต์ ที่มีรายการข้อมูลทั้งหมด 16,384 รายการ ซึ่งก็คือ 128 × 128 นี่เป็นจริงสำหรับ แผนที่ ขนาด 0 ที่ครอบคลุม 128 บล็อก และ แผนที่ ขนาด 4 ที่ครอบคลุม 2,048 บล็อก — จำนวนพิกเซลไม่เคยเปลี่ยนแปลง ทุกสิ่งทุกอย่างเกี่ยวกับศิลปะ แผนที่ เป็นผลมาจากข้อเท็จจริงข้อนี้
การแบ่งไบต์ออกเป็นสองส่วน
แต่ละไบต์จาก 16,384 ไบต์นั้นไม่ใช่สี แต่เป็นสีหลักและระดับความสว่างที่รวมกัน:
baseColorId = colorId >> 2 // 0–63
shadeIndex = colorId & 3 // 0–3
ดังนั้น สองบิตล่างสุดคือความสว่าง และส่วนที่เหลือคือบล็อกที่คุณกำลังมองหา ด้วยการกำหนดสีหลัก 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 สี พาเล็ตต์ไม่ได้ กว้างขึ้น — คุณไม่ได้รับเฉดสีใหม่ — แต่มีความลึกของค่าเพิ่มขึ้นสี่เท่า ซึ่งเป็นสิ่งที่การไล่ระดับสี (dithering) ต้องการอย่างแท้จริง
โปรดทราบด้วยว่าลำดับของระดับความสว่างไม่ได้เป็นแบบโมโนโทนิก: ดัชนี 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 ครอบคลุมพื้นที่ 256 เท่า ของ แผนที่ ขนาด 0 โดยใช้ 16,384 ไบต์เท่าเดิม นี่คือเหตุผลทั้งหมดที่ศิลปะ แผนที่ ต้องสร้างที่ ขนาด 0: ที่การซูมอื่น ๆ หนึ่งพิกเซลคือค่าเฉลี่ยของบล็อกหลายบล็อก และภาพที่คุณวางไว้อย่างระมัดระวังจะถูกสุ่มตัวอย่างใหม่ไป
แถว ขนาด 4 ควรค่าแก่การจดจำด้วยเหตุผลที่แตกต่างกัน — หนึ่งพิกเซลคือหนึ่งชังก์พอดี ซึ่งทำให้ แผนที่ ที่ซูมเต็มที่กลายเป็นตารางชังก์ที่ใช้งานได้
สิ่งนี้หมายถึงอะไรสำหรับไฟล์ที่เสียหาย
หาก map_<id>.dat มีอาร์เรย์ colors ที่ไม่ใช่ 16,384 ไบต์ มันไม่ใช่ แผนที่ ที่มีพิกเซลหายไป — มันไม่ใช่ แผนที่ ที่อ่านได้เลย ไม่มีรูปแบบความยาวบางส่วน อาร์เรย์จะมี ขนาด เต็มเสมอ โดยพื้นที่ที่ยังไม่ได้สำรวจจะถูกเก็บเป็น ID สี 0 แทนที่จะถูกละเว้น