Guides / Building & Resources

Пиксель Карты — это байт, а два его бита — яркость

61 базовый цвет × 4 оттенка = 244 цвета из массива в 16 384 байта. Только один из четырех оттенков является настоящим цветом блока; остальные три затемнены до 86%, 71% и 53%.

Каждая заполненная Карта в Minecraft имеет одинаковый размер на диске: массив colors байтов, состоящий ровно из 16 384 записей, что составляет 128 × 128. Это справедливо как для Карты с Размером 0, охватывающей 128 блоков, так и для Карты с Размером 4, охватывающей 2048 блоков — количество пикселей никогда не меняется. Все остальное в искусстве Карт следует из этого факта.

Байт делится на две части

Каждый из этих 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:

индекс оттенкамножительв процентах
0180 / 25570.6%
1220 / 25586.3%
2255 / 255100%
3135 / 25552.9%

Оттенок 2 — это цвет текстуры блока, нетронутый. Остальные три — это более темные версии, и самый темный — оттенок 3 — составляет чуть более половины яркости.

Вот почему ступенчатое искусство Карт выглядит так сильно отличается от плоского. Плоская постройка может производить только один из этих четырех оттенков на блок, поэтому плоская Карта имеет 61 доступный цвет. Изменение высоты разблокирует остальные три оттенка каждого блока и доводит вас до 244. Палитра не становится шире — вы не получаете новых оттенков — она становится в четыре раза глубже по значению, что именно то, что нужно для дизеринга.

Обратите внимание также, что порядок оттенков не монотонный: индекс 3 является самым темным, а не самым ярким. Сортировка по индексу и ожидание градиента дает вам 71%, 86%, 100%, 53%.

Размер умножает площадь, но никогда не разрешение

Поле scale принимает значения 0–4, и охватываемая им территория составляет 128 × 2^scale блоков с каждой стороны:

Размерохватываемые блокиодин пиксель Карты — это
0128 × 1281 блок
1256 × 2562 × 2 блока
2512 × 5124 × 4 блока
31 024 × 1 0248 × 8 блоков
42 048 × 2 04816 × 16 блоков — ровно один чанк

Карта с Размером 4 охватывает площадь в 256 раз большую, чем Карта с Размером 0, используя те же 16 384 байта. Это основная причина, по которой искусство Карт должно создаваться с Размером 0: при любом другом масштабе один пиксель является средним значением нескольких блоков, и изображение, которое вы тщательно разместили, пересэмплируется.

Строку с Размером 4 стоит запомнить по другой причине — один пиксель — это ровно один чанк, что делает полностью увеличенную Карту пригодной для использования в качестве сетки чанков.

Что это означает для поврежденного файла

Если файл map_<id>.dat имеет массив colors, который не равен 16 384 байтам, это не Карта с отсутствующими пикселями — это вообще не читаемая Карта. Частичной формы длины не существует. Массив всегда имеет полный размер, с неисследованными областями, хранящимися как id цвета 0, а не опущенными.

Извлечение карты в PNG →

More guides

Browse all →

Нужны другие инструменты для Minecraft?

Набор генераторов, просмотрщиков и конвертеров прямо в браузере — всё бесплатно.