Skip to Content
DocumentationToolsAO Baker

AO Baker

The AO Baker computes ambient occlusion on the GPU in seconds and writes the result to a texture or to a vertex color channel. It is faster than Unity’s built-in CPU baker for hero meshes and supports both per-texel mode (for prop textures) and per-vertex mode (for low-poly meshes that feed AO through vertex colors).

When to use it

  • Hero props that need crisp AO without the wait of a CPU bake.
  • Low-poly mobile meshes where per-vertex AO is the cheapest route.
  • Procedural pipelines that emit fresh meshes — bake on import.

Flat-lit prop — corners and crevices share the same value as flat surfaces.

Corners darken, contact pockets read; same material, same lighting.

No AO
AO baked

A baked AO map adds contact darkening you cannot get from screen-space cavity alone.

Opening the tool

Window → Genesis → AO Baker. The window opens with a mesh slot, a settings panel, and a live preview.

Screenshot

The AO Baker editor window showing the mesh source slot, the Mode/Resolution/Samples/Max Distance settings panel, and a live preview of a baked AO map on the selected mesh.

tools/ao-baker/ao-baker-window.png

Workflow

  1. Set the source mesh — drop a mesh into the source slot, or select a GameObject in the scene and click Use Selection.
  2. Pick a modePer-texel writes a Texture2D; Per-vertex writes to the mesh’s vertex color alpha channel.
  3. Configure sampling — resolution, sample count, max distance, and falloff curve. Higher sample counts are cleaner and slower.
  4. Bake — a GPU progress bar runs while the compute shader integrates rays. Output is saved next to the mesh and auto-assigned to the selected Genesis material’s _OcclusionMap slot if one is targeted.
  5. (Optional) Adjust the Bias and Dilate sliders post-bake; the baker recomputes without re-tracing for instant feedback.

Settings

Inspector labelShader propertyTypeDefaultDescription
ModeModeEnumPer-texelPer-texel writes a Texture2D; Per-vertex writes to vertex color alpha.
ResolutionResolutionInt (pow2)1024Output map size. Power of two.
SamplesSamplesInt128Rays per texel. 256 reads as cinematic.
Max DistanceMaxDistanceFloat1.0Ray length in world units.
FalloffFalloffAnimationCurveLinearDistance attenuation curve.
BiasBiasFloat0.001Self-intersection bias along the normal.
DilateDilateInt4UV island padding to prevent seam bleed.

Tips & gotchas

  • For very low-poly meshes, prefer Per-vertex and pipe AO into the Vertex Colors feature on the Genesis material.
  • The baker uses UV1 by default — if your second UV channel is your lightmap UV, switch to UV0 in advanced settings.
  • AO bakes in mesh-local space. Animated rigs should bake on the bind-pose mesh, not on a posed snapshot.

AO Baker is a one-shot tool. For runtime crevice darkening across the whole scene, install the Cavity module instead.

Last updated on