Guides / Building & Resources

Um pixel de Mapa é um byte, e dois de seus bits são brilho

61 cores base × 4 tons = 244 cores de um array de 16.384 bytes. Apenas um dos quatro tons é a cor real do bloco; os outros três são escurecidos para 86%, 71% e 53%.

Todo mapa preenchido no Minecraft tem o mesmo tamanho em disco: um array de colors bytes com exatamente 16.384 entradas, que é 128 × 128. Isso é verdade para um mapa de Escala 0 cobrindo 128 blocos e um mapa de Escala 4 cobrindo 2.048 blocos — a contagem de pixels nunca muda. Todo o resto sobre a arte de Mapa decorre desse único fato.

O byte se divide em dois

Cada um desses 16.384 bytes não é uma cor. É uma cor base e um tom empacotados juntos:

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

Então os dois bits de menor valor são o brilho e o restante é qual bloco você está olhando. Com 61 cores base definidas (o ID 0 é o slot transparente/inexplorado), o byte mais alto que um Mapa real contém é 61 × 4 + 3 = 247.

61 × 4 = 244 cores distintas, que é a paleta inteira disponível para a arte de Mapa. Não 61, e não 256.

Apenas um tom é a cor real do bloco

Os quatro multiplicadores não são igualmente espaçados, e um deles é 1.0:

índice do tommultiplicadorem porcentagem
0180 / 25570.6%
1220 / 25586.3%
2255 / 255100%
3135 / 25552.9%

O tom 2 é a cor da textura do bloco, intocada. Os outros três são versões mais escuras dela, e o mais escuro — tom 3 — é apenas um pouco mais da metade do brilho.

É por isso que a arte de Mapa em escadaria parece tão diferente de uma arte plana. Uma construção plana só pode produzir um desses quatro por bloco, então um Mapa plano tem 61 cores disponíveis. Variar a altura desbloqueia os outros três tons de cada bloco e leva você a 244. A paleta não fica mais ampla — você não obtém novos matizes — ela fica quatro vezes mais profunda em valor, que é exatamente o que o pontilhamento (dithering) precisa.

Observe também que a ordem dos tons não é monotônica: o índice 3 é o mais escuro, não o mais brilhante. Ordenar por índice e esperar um gradiente resulta em 71%, 86%, 100%, 53%.

A Escala multiplica a área, nunca a resolução

O campo scale varia de 0 a 4, e a área que ele cobre é de 128 × 2^scale blocos por lado:

Escalablocos cobertosum pixel de Mapa é
0128 × 1281 bloco
1256 × 2562 × 2 blocos
2512 × 5124 × 4 blocos
31.024 × 1.0248 × 8 blocos
42.048 × 2.04816 × 16 blocos — exatamente um chunk

Um Mapa de Escala 4 cobre 256 vezes a área de um Mapa de Escala 0 usando os mesmos 16.384 bytes. Essa é a razão pela qual a arte de Mapa precisa ser construída na Escala 0: em qualquer outro zoom, um pixel é uma média de vários blocos e a imagem que você cuidadosamente colocou é reamostrada.

A linha da Escala 4 vale a pena ser lembrada por uma razão diferente — um pixel é precisamente um chunk, o que torna um Mapa totalmente ampliado uma grade de chunks utilizável.

O que isso significa para um arquivo corrompido

Se um map_<id>.dat tem um array colors que não é de 16.384 bytes, não é um Mapa com pixels faltando — não é um Mapa legível de forma alguma. Não existe forma de comprimento parcial. O array é sempre de tamanho completo, com áreas inexploradas armazenadas como ID de cor 0 em vez de omitidas.

Extrator de mapas para PNG →

More guides

Browse all →

Procurando mais ferramentas de Minecraft?

Um conjunto de geradores, visualizadores e conversores que rodam no navegador — tudo grátis.