A GPU powered Terrain editor and renderer for Godot Engine
Cartographer is a GPU powered terrain editor for Godot 3.
.texarr
)New CartoMultiTexture
to create a new texture array, (or Load
to load an existing array).Create
button to initialize the new texture array, choose the size and format from the dialog.Save
option and choose to save the texture array as a .texarr
file type.
Even better, use the custom TextureArray Importer that builds TextureArrays from JSON files. More info below.alt
while using a tool to do the opposite, ie. while raising hold alt
to lower.ctrl-s
while working..res
).Cartographer now comes with a custom TextureArray Importer, this is the most stable and performant way to generate TextureArrays for your terrain material. Godot comes with a built-in TextureArray importer, but it works by requiring you to merge all your textures into one large image in a grid pattern, then importing that image and telling the importer how many rows and columns it should split the image by.
Cartographer's TextureArray Importer builds the TextureArray from a simple JSON file. In the JSON build file you can set the texture width and height, list the images you'd like to use for each layer, and even build a layer channel by channel. The format is simple:
{
// Set the width and height for each layer
"size": [1024, 1024],
// Set each layer in the array
"layers": [
// A layer in the array can be a resource path
"res://assets/textures/rock_albedo.jpg",
// or a file system path
"file://home/user/project/assets/textures/rock_albedo.jpg",
// or simply a hex color
"#FFFFFF",
// Layers can also be created by mixing channels directly, using an object like this
{
// The key selects the destination channels, the value is an array,
// with the first item being the image (or color hex #FFFFFF) source,
// the second item are the source channels, here they are being read in reverse,
// mapping blue to red, green to green, and red to blue
"rgb": ["res://assets/textures/rock_albedo.jpg", "bgr"],
// Here the alpha channel is set to the red channel from the rock_mask image
"a": ["res://assets/textures/rock_mask.jpg", "r"],
},
],
}
Save the file with a .tabld
file extension, select the file in the editor and go to the import tab to choose your build import options.
There is experimental support for masked weight blending in Cartographer. Masked weight blending uses a mask added to the alpha channel on an Albedo layer to boost or reduce the weight of a layer where it blends into another layer. This breaks up smooth gradient blends from the brush used to paint the layer, and makes the blending look more natural for the texture. For example; a brick layer with a mask blending into a sand layer will have the sand seem to fill the gaps between bricks more than the surface of the bricks. An example below:
Comparison of the same weight blend with and without masked blending