คู่มือ / การก่อสร้างและทรัพยากร
หนึ่งพิกเซลของแผนที่คือหนึ่งไบต์ และสองบิตในนั้นคือความสว่าง
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 คือค่า RGB ของสีแผนที่เองโดยไม่ถูกปรับสเกล — เป็นค่าคงที่ต่อหนึ่ง id สี ไม่ได้สุ่มมาจากเท็กซ์เจอร์ของบล็อก ส่วนอีกสามเฉดเป็นเวอร์ชันที่มืดลงของมัน และเฉดที่มืดที่สุด — เฉด 3 — มีความสว่างเพียงเกินครึ่งเล็กน้อยเท่านั้น
นี่คือเหตุผลที่ศิลปะแผนที่แบบขั้นบันไดดูแตกต่างจากแบบเรียบมากนัก สิ่งก่อสร้างแบบเรียบให้เพียงเฉดปกติ (86%) ดังนั้นแผนที่แบบเรียบจึงมี 61 สีให้ใช้ การเปลี่ยนความสูงปลดล็อกเฉดที่สว่างกว่าและมืดกว่าของทุกบล็อก และพาคุณไปถึง 183 จานสีไม่ได้ กว้างขึ้น — คุณไม่ได้สีใหม่เลย — แต่มันลึกขึ้นสามเท่าในแง่ค่าความสว่าง ซึ่งเป็นสิ่งที่การทำ dithering ต้องการพอดี เฉดที่สี่ (53%) ไม่ได้เกิดจากบล็อกเลย: มันมีอยู่ในรูปแบบไบต์ และมีเพียงไฟล์แผนที่ที่ถูกแก้ไขเท่านั้นที่ใช้มัน
สังเกตด้วยว่าลำดับของเฉดไม่เรียงจากน้อยไปมาก: ดัชนี 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 น่าจดจำด้วยเหตุผลอีกอย่าง — หนึ่งพิกเซลคือหนึ่งชังก์พอดี ซึ่งทำให้แผนที่ที่ซูมเต็มที่เป็นตารางชังก์ที่ใช้งานได้
สิ่งนี้หมายความอย่างไรกับไฟล์ที่เสียหาย
หากไฟล์แผนที่ (data/minecraft/maps/<id>.dat ในโฟลเดอร์โลก) มีอาร์เรย์ colors ที่ไม่ใช่ 16,384 ไบต์ มันไม่ใช่แผนที่ที่พิกเซลหายไป: เกมยังโหลดแผนที่ได้แต่จะทิ้งพิกเซลทั้งหมดและแสดงเป็นว่างเปล่า ไม่มีรูปแบบความยาวบางส่วน อาร์เรย์มีขนาดเต็มเสมอ โดยพื้นที่ที่ยังไม่สำรวจถูกเก็บเป็น id สี 0 แทนที่จะถูกละไว้