Professional Documents
Culture Documents
Biome Palettes
Biome Palettes
Biome Palettes
In vanilla Minecraft, the grass and leaf textures vary in color depending on the
climate of the surrounding biome.
This is controlled by two files,
assets/minecraft/textures/colormap/grass.png
assets/minecraft/textures/colormap/foliage.png
Each file is a 256x256 colormap applied to the base grass or leaf texture (which is
usually grey).
OptiFine greatly expands this functionality to other blocks and to ambient sky and
fog colors.
Artists can use this to great effect to give each biome its own feel.
This page is divided into two sections. The first describes the colormap formats
themselves,
and the second shows how to apply them to various elements of the game world.
The format used by vanilla Minecraft is a 256x256 colormap with the axes
representing temperature and humidity.
Each biome has fixed base temperature and humidity values corresponding to a single
pixel in the colormap.
As the y coordinate increases, the position in the colormap slowly moves toward the
lower right.
A forum post by khanador illustrates how this works:
http://www.minecraftforum.net/forums/mapping-and-modding/resource-packs/resource-
pack-discussion/1256322-new-biome?comment=124
The vanilla format is used for all custom colormaps as well, unless you override
this behavior.
An alternative format that offers finer control over each biome. It is detailed on
its own page:
https://bitbucket.org/prupe/mcpatcher/wiki/Biome_Palettes_(Grid)
Other formats
=============
Additionally, OptiFine offers a simple "fixed" colormap format. This format does
not require an image;
it is simply a single color applied to all blocks regardless of location.
Its primary purpose is to override certain hardcoded block colors like reeds (sugar
cane).
# Colormap format
format=<vanilla | grid | fixed>
If omitted, the default format is vanilla. If you'd rather use grid format by
default,
you can set it globally in the "assets/minecraft/optifine/color.properties" file:
# Grid format
palette.format=grid
Note that this setting does not affect the vanilla "grass.png" and "foliage.png"
files in "assets/minecraft/textures/colormap".
Those are always interpreted in the vanilla format in order to preserve
compatibility for non-OptiFine users.
See "Grass and foliage" below for how to use the grid format with these textures.
For colormaps applied to terrain (as opposed to fog, sky, and underwater), this is
a list of blocks
and optional property values to apply the map to. If this property is not
specified, the block name is taken from the filename
(e.g., "cobblestone.properties" -> "blocks=minecraft:cobblestone").
# For example:
blocks=stone minecraft:sand minecraft:lever:face=wall:facing=east,west
# Colormap image
source=<image>
For vanilla and grid colormaps only. The path to the image containing the colormap.
If this property is omitted, it defaults to a png with the same name and directory
as the properties file itself,
e.g., "stone.properties" -> "source=stone.png".
# Default color
color=<rgb value>
For "format=fixed", this is simply the fixed color to be applied to all matching
blocks.
If no value is given, the default is white "ffffff".
# Format
format=vanilla: x=127,y=127 (Center of bitmap)
format=grid: x=1,y=64 (Plains biome at sea level)
# Custom colormap
palette.block.<colormap image>=<list of blocks + properties>
For example, this assigns the four basic types of leaves their own colormaps:
# Custom colormap
palette.block.~/colormap/oak.png=oak_leaves
palette.block.~/colormap/tall_grass_up.png=tall_grass:half=upper
palette.block.~/colormap/tall_grass_low.png=tall_grass:half=lower
In "assets/minecraft/optifine/colormap/blocks/oak.properties":
# Oak colormap
blocks=oak_leaves
In "assets/minecraft/optifine/colormap/blocks/tall_grass_up.properties":
# Pine colormap
blocks=tall_grass:half=upper
In "assets/minecraft/optifine/colormap/blocks/tall_grass_low.properties":
# Pine colormap
blocks=tall_grass:half=lower
Single block
============
The simplest case, a custom colormap applied to a single block type with no
property values, it does not need a properties file.
For example, "assets/minecraft/optifine/colormap/blocks/sand.png" applies to sand
blocks without the need to specify "blocks=sand".
Multiple blocks
===============
To apply the same colormap to all stone and ore blocks, use a properties file
In "assets/minecraft/optifine/colormap/blocks/stone_and_ore.properties":
Add "format=grid" if using the new format. The source property is unnecessary if
the colormap is also named "stone_and_ore.png".
Add "palette.format=grid" to use grid format for all your custom colormaps (except
the vanilla "grass.png" and "foliage.png").
In "assets/minecraft/optifine/colormap/blocks/grass.properties":
# Grass colormap
format=grid
# NOTE: "blocks=grass" not needed since it is in the filename
yVariance=2
In "assets/minecraft/optifine/colormap/blocks/oak.properties":
# Oak colormap
format=grid
blocks=oak_leaves
Starting in 1.7, Minecraft applies the "grass.png" color to reeds, much to the
annoyance of many artists.
A "fixed" colormap of "ffffff" (white) effectively reverts to the 1.6 behavior.
A 256x256 all-white colormap would of course accomplish the same thing, but this
method is more efficient.
The simplest way to do this is to create a properties file containing just one
line:
In "assets/minecraft/optifine/colormap/blocks/reeds.properties":
# Reeds colormap
format=fixed
This works because the blocks property defaults to the filename (reeds) and the
color property defaults to "ffffff" for fixed colormaps.
These specifically named colormaps override the default fixed ambient colors:
Each one can have a corresponding properties file to specify the format or other
settings.
These colormaps behave just as terrain-based ones except that they do not care
about the blocks property.
References
==========
https://bitbucket.org/prupe/mcpatcher/wiki/Biome_Palettes
http://www.minecraftforum.net/forums/mapping-and-modding/resource-packs/resource-
pack-discussion/1256322-new-biome?comment=124