Hướng dẫn / Xây dựng & tài nguyên
Một pixel bản đồ là một byte, và hai bit trong đó là độ sáng
61 màu cơ sở × 4 sắc độ = 244 màu từ một mảng 16.384 byte. Chỉ một trong bốn sắc độ là giá trị đầy đủ của màu; ba sắc độ còn lại bị làm tối xuống 86%, 71% và 53%.
Mọi bản đồ đã điền trong Minecraft đều có cùng kích thước trên đĩa: một mảng colors byte gồm đúng 16.384 phần tử, tức 128 × 128. Điều đó đúng với cả bản đồ Quy mô 0 bao phủ 128 khối lẫn bản đồ Quy mô 4 bao phủ 2.048 khối — số lượng pixel không bao giờ thay đổi. Mọi thứ khác về nghệ thuật bản đồ đều bắt nguồn từ sự thật đó.
Byte được chia làm hai phần
Mỗi byte trong số 16.384 byte đó không phải là một màu. Nó là một màu cơ sở và một sắc độ được đóng gói cùng nhau:
baseColorId = colorId >> 2 // 0–63
shadeIndex = colorId & 3 // 0–3
Vậy hai bit thấp là độ sáng, phần còn lại cho biết bạn đang nhìn vào khối nào. Với 61 màu cơ sở được định nghĩa (id 0 là ô trong suốt/chưa khám phá), byte cao nhất mà một bản đồ thực tế chứa là 61 × 4 + 3 = 247.
61 × 4 = 244 màu riêng biệt, đó là toàn bộ bảng màu khả dụng cho nghệ thuật bản đồ. Không phải 61, cũng không phải 256.
Chỉ một sắc độ là giá trị đầy đủ của màu
Bốn hệ số nhân không cách đều nhau, và một trong số đó là 1,0:
| chỉ số sắc độ | hệ số nhân | theo phần trăm |
|---|---|---|
| 0 | 180 / 255 | 70,6% |
| 1 | 220 / 255 | 86,3% |
| 2 | 255 / 255 | 100% |
| 3 | 135 / 255 | 52,9% |
Sắc độ 2 chính là RGB của màu bản đồ, không bị chia tỉ lệ — một giá trị cố định cho mỗi id màu, không được lấy mẫu từ texture của khối. Ba sắc độ còn lại là phiên bản tối hơn của nó, và sắc độ tối nhất — sắc độ 3 — chỉ hơn một nửa độ sáng một chút.
Đây là lý do nghệ thuật bản đồ xếp bậc trông khác hẳn so với bản phẳng. Một công trình phẳng chỉ tạo ra sắc độ thường (86%), nên bản đồ phẳng chỉ có 61 màu khả dụng. Thay đổi độ cao sẽ mở khóa các sắc độ sáng hơn và tối hơn của mọi khối và đưa bạn lên 183. Bảng màu không trở nên rộng hơn — bạn không có thêm tông màu mới — nó sâu hơn gấp ba lần về giá trị, đúng thứ mà kỹ thuật pha trộn điểm (dithering) cần. Sắc độ thứ tư (53%) hoàn toàn không được tạo ra từ khối: nó tồn tại trong định dạng byte, và chỉ tệp bản đồ đã chỉnh sửa mới dùng đến nó.
Cũng lưu ý rằng thứ tự sắc độ không đơn điệu: chỉ số 3 là tối nhất, không phải sáng nhất. Sắp xếp theo chỉ số và mong đợi một dải chuyển sắc sẽ cho bạn 71%, 86%, 100%, 53%.
Quy mô nhân diện tích, không bao giờ nhân độ phân giải
Trường scale chạy từ 0–4, và vùng đất nó bao phủ là 128 × 2^scale khối mỗi cạnh:
| quy mô | khối được bao phủ | một pixel bản đồ là |
|---|---|---|
| 0 | 128 × 128 | 1 khối |
| 1 | 256 × 256 | 2 × 2 khối |
| 2 | 512 × 512 | 4 × 4 khối |
| 3 | 1.024 × 1.024 | 8 × 8 khối |
| 4 | 2.048 × 2.048 | 16 × 16 khối — đúng một chunk |
Một bản đồ Quy mô 4 bao phủ diện tích gấp 256 lần bản đồ Quy mô 0 với cùng 16.384 byte. Đó chính là lý do vì sao nghệ thuật bản đồ phải được xây ở Quy mô 0: ở bất kỳ mức thu phóng nào khác, một pixel là trung bình của nhiều khối và hình ảnh bạn cẩn thận đặt vào sẽ bị lấy mẫu lại mà mất đi.
Hàng Quy mô 4 đáng nhớ vì một lý do khác — một pixel đúng bằng một chunk, khiến một bản đồ thu phóng hoàn toàn trở thành lưới chunk hữu dụng.
Điều này có nghĩa gì với một tệp hỏng
Nếu một tệp bản đồ (data/minecraft/maps/<id>.dat trong thư mục thế giới) có mảng colors không phải 16.384 byte, thì đó không phải là bản đồ thiếu pixel: trò chơi vẫn tải bản đồ nhưng vứt bỏ các pixel và hiển thị nó trống trơn. Không có dạng độ dài một phần. Mảng luôn có kích thước đầy đủ, với các vùng chưa khám phá được lưu dưới dạng id màu 0 thay vì bị lược bỏ.