Per-pixel depth explained

Depth is the one idea that separates this from a plain pixel editor. Every pixel stores a colour and a depth, and the depth is what the extruder turns into geometry.

What extrusion actually does

Think of the drawing as a sheet of pixels, each one pushed forward by its own amount. Depth runs from 1 to 8: depth 1 is the thinnest possible column, depth 8 sticks out 8 times as far. There is no depth 0 - an unpainted pixel is simply empty and contributes no geometry at all. Join the tops and sides of those columns and you have a mesh.

Whether those columns grow forward from a flat back or straddle the mid-plane evenly is the separate extrusion mode setting, not something a depth value controls.

Because neighbouring square pixels at the same depth share a flat surface, the mesh builder can merge them into one larger face. This is why a smooth depth map produces far fewer triangles than a noisy one - the merge only spans pixels that agree, and it also has to respect colour and material boundaries. The shaped cells - triangle, circle, diamond and the rest - keep their own front and back outline, so a wall of them costs more caps than the same area in squares; their flat side walls do still merge along a run.

Painting a good depth map

Work in broad bands, not per-pixel gradients. A character sprite usually only needs three or four depth levels: background, body, and one or two features that should pop forward.

Use From brightness as a starting point when your sprite is already shaded - bright areas read as "closer", which matches how most pixel artists shade. Then flatten the areas that came out speckled, because speckle is what inflates the triangle count.

Depth also drives the material maps

If you export a sprite rather than a mesh, the Material maps (from depth) option writes normal, ambient-occlusion and height maps derived from the same depth data, at the sprite's resolution. That gives a flat 2D sprite real lighting response in an engine without any 3D geometry at all.

The normal map uses the OpenGL / Y-up convention, so it drops straight into Godot; in Unity, flip the green channel.