ACanvas / The Canvas Bench Intermediate · 10 steps

Canvas · Intermediate · Tutorial 2 of 3

Six channels, one material,
and the tab nobody opens.

Everything Canvas can do to a surface, in the order you would actually do it, and the reasons professional texture artists work that way. Written for the modder who has a mesh and wants it looking like it belongs in Ascent of Ashes by tonight.

Application  AshForge Canvas Comes after  First Coat Companion to  Mod Kit Accelerated Verified against  Canvas main

What this course is

Canvas paints in six PBR channels at once, with a layer stack per channel, non-destructive masks, and curvature-driven wear that reads your mesh's own geometry. That combination is what separates it from a paint program that draws on a model, and it is the part most people never switch on, because nothing on screen tells you it is there.

This page is the missing instruction. Every control named here exists in the shipping build and every number is one you can type in. Where a technique comes from wider practice rather than from Canvas, it is marked as such and sourced at the end.

Before you start

Canvas installs from the Hub like every other suite tool and, like every other tool, it opens from the Hub rather than from its own shortcut. Windows, the Linux AppImage and the update feed are all live.

One habit worth bringing: save the .canvas project before every bake and every resolution change. Those are the two operations that clear undo.

01

UVs

A mesh that can hold paint

Prepare Auto-UV UV Checker

Painting is UV-bound. Canvas picks the triangle under your cursor, converts the hit to a UV coordinate, and stamps into the texture there. No UVs, no paint — so the first thing to settle is whether your model has a usable layout.

Open one with Open Model…. If it arrives without UVs, Canvas says so in the status line. Fix it from the Auto-UV menu, which offers five routes.

RouteWhat it doesReach for it when
xatlasIndustry-standard atlas packer, best overall quality. This is the default answer. Start here.
Smart (angle-based)Splits charts on angle thresholds. Organic or faceted shapes where xatlas over-fragments.
Box projectionSix-way projection into a 3×2 grid. Crates, panels, anything essentially cuboid.
Planar — Top (Y)Single-axis projection. Flat ground pieces, decals, signage.
Planar — Front (Z) / Side (X)As above, on the other axes. Wall panels and façades.

Auto-UV changes nothing you can see, because it rewrites coordinates rather than pixels. That is why Canvas switches the UV Checker on automatically when it finishes. Read the checker before you paint a single stroke: squares should be square, and roughly the same size everywhere. Stretched squares mean stretched texture, and squares that shrink on one part mean that part gets less resolution than its neighbours.

That second reading is texel density — pixels per unit of world space — and keeping it uniform across an asset is what makes a set of props look like they come from one world rather than a bring-and-buy sale. Ascent of Ashes is played at a fixed isometric distance, which is a gift: you can pick one density and hold it everywhere, because nothing is ever inspected from twenty centimetres away. Set it by what the camera actually resolves, not by what looks crisp in the viewport with your nose against it.

From the bench
Open UV Layout alongside the checker. It draws the wireframe of your charts over the current channel, so you can see where a seam is about to fall. A seam through the middle of a face you will paint detail on is a seam you will fight all night; rotate the model and re-run Auto-UV rather than paint across it.
02

The mental model

Six channels, one material

Read Channel selector

This is the idea everything else hangs off. Canvas does not have “a texture”. It has six independent layer stacks, each compositing over its own neutral base into its own image, and all six feed one material at the same time.

SIX STACKS ONE MATERIAL Albedo layers → base coat Normal layers → flat 128,128,255 Roughness layers → mid grey Metallic layers → black AO layers → white Emissive layers → black composite texture texture texture texture texture texture StandardMaterial3D one material on the model viewport

Figure 01 — six stacks, one material Why nothing happens when you paint the wrong channel. The Channel selector at the top of the side panel decides which stack your brush writes into, and every layer operation acts on the active channel only. Each channel composites over a different neutral, which is why an empty Roughness reads mid-grey while an empty Metallic reads black.

Two controls make the stack legible while you work:

  • Isolate Channel shows the active channel unshaded, as raw data. This is how you check that a roughness map actually has variation in it, rather than trusting a glossy highlight.
  • Shading in the Scene tab offers PBR (lit), Unlit (flat) and Matcap (clay). Unlit judges base colour with lighting removed; Matcap reads form and silhouette with texture removed.
03

PBR values

Values that don't lie

Read 6 channels

PBR is a physical model and it punishes invented numbers. Albedo that is too dark starves global illumination, and metallic sitting at 0.5 describes a material that does not exist. The ranges below come from measured references, translated into what you actually type into Canvas.

ChannelPaint withWorking rangeThe rule
AlbedoColoursRGB 50–240 Nothing in nature is pure black or pure white. Charcoal bottoms out near 50; fresh snow tops out near 240.
MetallicGrayscale0 or 255 Binary in practice: a surface is metal or it is not. Mid-greys appear only where metal is partly covered by paint, rust or grime — and then the mask does the blending, not the value.
RoughnessGrayscale25–235 Your busiest channel. Perfect mirrors and perfect diffusers are both rare, and variation here sells a surface faster than albedo detail.
NormalRaw RGB128,128,255 is flat Do not hand-paint this. Paint height in grayscale and use Height → Normal.
AOGrayscaleWhite is open Contact shadow only. Use Bake AO rather than painting it.
EmissiveColourBlack is off Only what actually emits light. Bright albedo is not emission.
The trap

Do not paint lighting into albedo. Highlights, shading and baked-in shadow belong to the renderer rather than to the base colour.

If you paint a bright streak along the top edge because it looks good in your current viewport, it will still be there when the light moves, and it will look wrong from every angle but one. Albedo answers the question “what colour is this material”, and nothing else.

04

The feature worth learning Canvas for

Smart material layers

Build Materials tab Shared mask

This is the feature worth learning Canvas for, and it sits two clicks deep in a tab most people never open.

A material layer, added by clicking a card in the Materials tab, is not a flood fill. It creates a linked fill layer in every channel the preset defines, and gives all of them one shared mask, black. Black means hidden, so the material is loaded into all six channels at once and invisible.

Then you paint the mask, and the entire PBR material appears where you brush — colour, roughness, metalness, all together, with everything underneath untouched.

Materials tab click a card creates LINKED FILL LAYERS Albedo fill Roughness fill Metallic fill AO fill (whichever channels the preset defines) all of them share ONE mask, by reference shared mask black = hidden paint white Edit mask brushed reveal every channels at once

Figure 02 — one mask, every channel Because the mask is shared by reference, a single stroke reveals the material's colour, roughness, metalness and occlusion together — physically coherent by construction. Deleting the layer removes it from every channel atomically, so a channel can never be left holding half a material.

Expect

Read this before you expect too much of the library. The eight cards are flat per-channel values rather than textures. “Rough Stone” is a brown at roughness 0.9 with metallic 0; “Brushed Metal” is a grey at low roughness with metallic 1. There is no stone grain in one and no anisotropic brushing in the other, and most presets define four channels rather than all six.

So the mechanism is the professional part and the library is eight starting points. Every scrap of character comes from what you brush on top, which is what the next four steps are for. Set your expectations there and the workflow makes sense; expect a texture library and you will wonder why your stone looks like brown plastic.

There is also currently no way to save your own. MaterialPresets is a fixed list compiled into the program with no load-from-disk path, so a recipe you love is one you rebuild by hand next time.

04b

Driving it

  • Clicking a material card switches you to its first channel and turns on Edit mask automatically. You are already painting the mask, so just start brushing.
  • In mask editing, Paint reveals and Erase conceals. Everything else still applies: tip shape, hardness, opacity, flow, symmetry.
  • Only the channel you are viewing updates live during a drag. Release the mouse and the siblings catch up. Do not chase it — that is by design rather than lag.
  • Stack them. Rough Stone as a base coat, Brushed Metal masked into the panels, Gold masked into the trim: four coherent PBR value-sets you can reveal independently. Treat each as a primed surface to paint into rather than a finished material.
From the bench
Reach for + Fill plus a mask instead of brushing raw colour whenever you might change your mind. A fill layer's colour stays editable forever and brushed pixels do not. Professional texture work is mostly masks over fills: the brush shapes where, almost never what.
05

Curvature

Wear that reads as history

Build Edge Wear Cavity Dirt

Uniform grunge looks like noise. Believable wear is positional: it appears where physics puts it. Edges and corners get knocked and rubbed until the material underneath shows through, and recesses collect dust that nothing wipes out.

Canvas computes both from your mesh's own geometry. Edge Wear and Cavity Dirt bake a curvature estimate — comparing each vertex normal against its neighbours — into a UV-space map, then composite your brush colour through it.

YOUR MESH convex concave bake curvature map bright = convex Edge Wear exposed edges → base metal Cavity Dirt recesses → dust, grime active layer

Figure 03 — geometry decides where the story goes The curvature bake is cached per mesh, so the second click is instant. Both buttons composite into the active layer of the active channel, which means you can run Edge Wear into a mask just as easily as into colour — and that is usually the better move.

05b

The professional move

Do not run Edge Wear directly onto albedo. Add a material layer for the material underneath — bare metal under paint, say — then run Edge Wear into that layer's mask with Edit mask on. Now the worn edges reveal a full PBR material rather than a paler colour: the exposed metal is genuinely metallic and genuinely smoother, because it is a real material showing through rather than a lighter shade pretending.

Then break the perfection. Curvature wear applied at full strength wraps every edge evenly, which reads as machine-made. Set the brush to Erase with the Noise (grunge) tip and knock holes in the wear mask, so the wear becomes intermittent — heavy where a hand or a crate would actually strike, absent where nothing reaches.

From the bench
Ask what happened to this object before you texture it, and let the answer choose the wear. A colony's cooking pot is worn on the rim and the handle and sooty underneath. A gun is worn where it is gripped, holstered and dropped. Wear applied by rule looks generated; wear applied by story looks made.
06

The brush

The brush bench

Reference 8 modes 4 tips

Eight modes, four tips, and the sliders that decide whether a stroke reads as a stroke or as a surface.

ModeWhat it doesTexturing use
Paint / EraseDeposit or remove. Everything. In mask editing, reveal and conceal.
CloneCopies from an offset source; Ctrl+click sets it. Repairing a seam, or repeating a detail without re-painting it.
SmudgePicks up and drags colour. Streaks, drips, and pulling grime downward with gravity.
Blur / SharpenSoftens or crispens what is there. Blur a mask edge to kill a hard cut; sharpen a worn edge to make it bite.
Dodge / BurnLightens or darkens existing pixels. Value variation without recolouring. Superb on roughness.
06b

Tips

  • Round — radial falloff shaped by Hardness. The default, and usually right.
  • Square — box falloff. Panel edges and hard-surface masking.
  • Airbrush — grainy, centre-weighted, and builds up as you pass over it. Soft dust accumulation.
  • Noise (grunge) — procedural FBM noise sampled in texture space, driven by Noise scale. The most valuable tip in the program for game textures, because it breaks up anything uniform and never repeats.
06c

The four sliders that matter

ControlWhat it changesSetting it
OpacityThe ceiling of a single dab. Low, 10–25%, for anything you want to build up in passes.
FlowRate of deposit per dab. Low flow with high opacity gives airbrush-like build-up along a stroke.
SpacingGap between dabs, as a fraction of radius. Tight for solid strokes; wide turns any tip into a scatter stamp.
StabilizerSmooths cursor jitter. Raise it for long panel lines and cable runs, lower it for organic grime.

Two more are worth switching on: Pen pressure, which maps independently to opacity and size if you have a tablet, and Preset, which saves a brush you have dialled in so you can recall it later. A grunge brush you tuned once and named is worth more than any single texture you will paint with it.

06d

Symmetry, stencils and decals

  • Symmetry mirrors across local X, Y and Z — combinable — or radially around an axis. Each mirrored copy re-picks its own UV from the mirrored 3D point, so it works on any UV layout, including atlas-packed ones where the two halves are nowhere near each other in texture space.
  • Load Stencil… with Use stencil turns the brush into a stamp shaped by an image. Drag with wide spacing to repeat it.
  • Project From View projects that stencil from the current camera onto the surface, which is how you get logos, stencilled numbering and poster decals to sit correctly across curvature. Turn on Occlude hidden faces so it does not print through to the back.
  • Load Decal… followed by Place Decal gives you the same idea with position, size, rotation and opacity adjustable before you commit, and Show placement preview to line it up.
07

Bakes

Let the mesh do the work

Build Bake AO Height → Normal

Two bakes turn geometry into texture data, and both save hours of hand-painting.

Bake07

Bake AO

Casts rays per vertex to measure how occluded each point is, and writes the result into the AO channel.

Run it once, early, after your UVs are final. It is synchronous and dense meshes take a moment — that is raytracing rather than a hang.

Bake07b

Height → Normal

Reads the active layer's luminance as a height field and converts it to a tangent-space normal map with a Sobel filter, controlled by Height strength.

Paint rivets, panel gaps, scratches and weld beads in grayscale — bright is raised, dark is recessed — then convert. Painting normal maps by hand is a losing game; painting height is intuitive.

Order
Bake AO after UVs are final and before you invest in painting. Re-running Auto-UV invalidates everything baked into UV space, and the curvature cache clears when the mesh changes. Settle geometry, settle UVs, bake, then paint.
08

The last ten percent

The grime pass

Build 5 steps

This is what separates a texture set from a texture. When an asset carries three or four materials, each individually correct, it still reads as parts bolted together — because nothing has happened to them as one object.

Do this

One unifying pass, on top of everything

  1. Add a new layer at the top of the Albedo stack. it has to sit above every material boundary to cross them
  2. Set its blend mode to Multiply and its opacity low, around 10–20%. this is a veil, not a coat
  3. Pick a desaturated, slightly warm dark — the colour of the world's dust, not black. black deadens everything underneath instead of tinting it
  4. Paint with the Noise (grunge) tip at large size across the whole model, ignoring material boundaries entirely. ignoring them is the entire point of the pass
  5. Add the same pass to Roughness. dirt is rougher than what it lands on, and this is the half most people skip

Because it crosses every material boundary, the pass makes the object read as one thing that has sat in one place. For Ascent of Ashes specifically, this is also where you pull a bright asset back into the game's muted, grounded palette. A warm grey multiply at 15% does more to make a prop belong than any amount of albedo tweaking.

From the bench
Use Layer groups to keep this navigable. Collapse “Base”, “Wear” and “Grime” and you can reason about the asset instead of scrolling a stack of thirty. Group opacity lets you dial an entire pass up and down in one control, which is the fastest way to answer “is this too much?”
09

Review

Judge it honestly

Check Scene tab

A texture that looks great under one light is a texture you cannot ship. The Scene tab exists to stop you fooling yourself.

Check09a

Change the light

Cycle the environment presets and the bundled HDRIs. Studio Softbox and Venice Sunset are deliberately different in temperature and contrast, so anything that only works under one of them is not finished.

HDRI rotation sweeps the key light around without changing anything else.

Check09b

Take things away

Unlit (flat) reveals what you have actually painted into albedo. Baked-in highlights are glaring here and invisible in PBR.

Matcap (clay) shows form alone, which is the check for whether your normal map is doing anything or lying.

  • Check each channel raw. Run Isolate Channel through all six. Roughness should have visible structure, Metallic should be near-binary, and AO should look like contact shadow and nothing else.
  • Ground, Shadows and Reflections add contact and environment response. Turn Reflections on when judging metal, since metal is almost entirely reflection.
10

Export

Ship it

Ship 5 exports

Set Texture resolution in the Scene tab before the final pass — 1024, 2048 or 4096. Changing it resamples every layer and mask across all channels with Lanczos filtering, but it also clears undo history, so decide before you are deep in.

Sizing
For an isometric colony sim, 1024 covers most props comfortably and 2048 is generous. Resolution you cannot see is GPU cost the player pays for nothing.
ExportProducesUse it for
Export GLB…A self-contained .glb with textures embedded. Handing the asset to anything that reads glTF.
Export Texture Maps…Six PNGs, one per channel. Taking the maps into another engine or tool.
Export as Mod…A full mod folder: manifest, scene, model. The straight line from Canvas to a loadable mod.
Export Per-Surface…Separate GLB and PNGs per original mesh part. Multi-part models that need independent materials.
Send to Crucible…Exports, then launches Crucible on it. Seeing it in a real scene immediately.

Reference

Shortcuts and rescue

KeyWhat it does
Alt + click Eyedropper. Samples the composited colour under the cursor into the brush, in any mode. Use it constantly to keep a palette tight.
Ctrl + click Sets the clone source, in Clone mode only.
Ctrl + Z Undo, twenty deep, covering strokes, fills, bakes, smart masks and adjustments.
Ctrl + Y · Ctrl+Shift+Z Redo.

Adjust Active Layer… gives brightness, contrast, hue, saturation and invert with live preview. The values apply as you drag and revert cleanly if you cancel, so it is safe to explore. Invert is the quickest fix in the program: a mask revealing exactly the wrong areas is one click from correct.

Save early
.canvas projects keep every channel's layer stack, masks, fill layers, material-layer links and groups. Exported textures are the output; the .canvas file is the work. Save it before every bake and every resolution change, because those are the two operations that clear undo.
§

Sources

Where this comes from

Canvas specifics on this page were checked against the shipping source. The general craft — value ranges, texel density, positional wear, the unifying grime pass — is standard practice across the industry, and these are good places to go deeper.

Companion to Mod Kit Accelerated — that course builds the crate, this one textures it.

→

Next

Before You Paint

There is a third tier, and it belongs before this one in practice. Everything on this page is recoverable — repaint a layer, change a material, step back. Before You Paint covers the handful of decisions that are not: changing the texture resolution empties your entire undo history, and a single model part without UVs silently makes every stroke land on every part. Both are settled in the first minute after loading a model, and both are free to avoid if you know about them.