Vertex Color Bake¶
Surface → Vertex Color Bake
Procedural wear baked straight into Color 1: ambient occlusion, dirt in the
concave edges, grime on the up-facing surfaces, wear on the exposed corners,
noise, a gradient, and a fake directional shadow — stacked, each with its own
strength.
Watch it work¶
Stacking the layers onto a prop and watching Color 1 fill in as each one
comes on.
A whole collection baked in one press, with the gradient fading between two colours rather than only darkening one.
Ambient occlusion and the fake sun casting between objects — an object now darkens the one it stands against, not only itself.
This is the cheapest wear there is. It costs no texture, no extra object and no draw call: the colour rides on vertices the mesh already has.
This one writes to your mesh
Every other tool here builds a separate object and leaves your source
untouched. This one cannot: baked vertex colour is mesh data, so it
creates and fills a Color 1 layer on the object you selected.
It is one undo away, and deleting the Color 1 attribute in the Object Data
properties removes it entirely. But it is the one tool in the add-on that
changes the thing you point it at, and it is worth knowing that before you
press it on an asset you have not saved.
Using it¶
- Select one or more mesh objects.
- Tick the layers you want and set their strengths.
- Press Generate Vertex Color.
Every object in the selection is baked, not just the active one.
Clear puts Color 1 back to white on the same targets. It leaves the
alpha channel exactly where it was — that is the channel the decal shaders
blend by, and resetting it would make every decal on the mesh opaque without
saying so.
Baking a whole collection¶
The Target at the top of the panel switches between Selected Objects and Collection. Point it at a collection and Generate bakes every mesh inside it — with nothing selected at all — reporting progress as it goes. Include Hidden decides whether objects hidden in the viewport are baked too; off by default, because hidden usually means "not this one".
Live Update always follows your selection, whatever the target is. A slider drag that walked a whole collection would not be live, it would be a freeze.
Casting between objects¶
AO and Fake Shadow cast against the scene, not only against the object being baked. A crate standing against a wall darkens where it meets the wall, and the wall darkens behind the crate — which is the difference between baked lighting and a per-object effect.
Two things follow from that. Moving an object invalidates its cache, so it re-bakes rather than keeping the shading it had somewhere else. And what is around an object at bake time matters: bake the room with the furniture in it.
The layers¶
| Layer | What it darkens or lightens | Default |
|---|---|---|
| AO | raytraced ambient occlusion — the creases and the undersides | on, 0.8 |
| Edge Dirt | concave edges, where dirt actually collects | on, 0.1 |
| Floor Grime | up-facing surfaces, by how flat and how high they are | on, 0.2 |
| Edge Wear | convex edges, where paint gets knocked off | on, 0.1 |
| Random | per-vertex noise, so nothing reads as machine-flat | on, 0.1 |
| Fake Shadow | a directional shadow at an angle and altitude you set | off |
| Linear Gradient | top to bottom, for a general falloff | off |
Base Color is what all of it multiplies down from — white unless you want the whole object tinted.
The Linear Gradient can carry two colours instead of darkening the base one: tick Use Custom Colors and it fades from a Top colour to a Bottom one down the object's world height. Shift slides the fade up or down, Scale tightens or spreads it — so the transition can be put where the asset needs it rather than where the bounding box happens to put it.
Why it is fast¶
The expensive parts — the AO raycasts and the edge-angle pass — are cached on the mesh. Dragging a strength slider only re-blends what was already measured, so the sliders stay responsive on a dense mesh instead of re-raytracing the object on every mouse move.
The cache is per object. Change the geometry and the next Generate measures it again.
Where it fits¶
Color 1 is the same attribute the strip tools write, and the same one
decal.sps reads its blend factor from. On an ordinary GTA material the RGB
here is what shades the mesh; on a decal shader the alpha is what matters. This
tool targets the RGB and blends the alpha rather than overwriting it, so an
object that already carries a decal setup is not flattened by a bake.
Credit¶
Contributed by @cs-dev-09 — see Thanks.