Vertex Oven

by Forest Katsch in Scripts and Addons

How to Install

  • Download the file that looks like vertex-oven-<version>.zip from Blender Market.
  • Open Blender's Preferences window and navigate to the Add-ons tab
  • Click the Install button and select the zip file you downloaded.
  • Enable Vertex Oven.
  • Vertex Oven is now ready-to-use.

How to Use

With a mesh object active, open the Object menu in the 3D view, select Vertex Oven, and select Bake Vertex Ambient Occlusion. When you're happy with the settings, click OK.

Baking will take anywhere from a few seconds to multiple minutes; keep an eye on the status, displayed on the lower-left corner of the window in Blender's statusbar.

To use the vertex colors in a shader, add an Attribute node and type in the name of the vertex color layer (Ambient Occlusion by default.) Use the Fac output as the ambient occlusion value; by default, this ranges from 0.0 (fully occluded) to 1.0 (no occlusion.)

For a quick preview of vertex colors, you can also enter Vertex Paint mode (Ctrl-Tab and select the top option.)

Quality Tips

Vertex Oven bakes to vertex colors, so it's unable to do anything about large faces with highly variable occlusion. The only way to resolve this issue is to subdivide large faces.

Performance Tips

There are a few ways to improve performance when baking ambient occlusion. 

First and foremost, lower sample counts will help performance at the cost of more noise. 32 is the default number of samples; I've found 128 to produce good results; and the tiny quality improvements when using more than about 256 samples will most likely not be worth the extra time.

If you're only baking a single object and don't need or want other objects to influence ambient occlusion, you can set Casting to Active Object Only. This helps avoid performing potentially millions of raycasts onto objects that you don't need to consider.

Reducing the ray distance can help with more complex models and scenes.

And lastly, since Vertex Oven bakes ambient occlusion per-vertex, a mesh with lower polycount will always be faster than a high-poly mesh.