I have used Baketools for such a long time that I don’t even think about it as an add-on anymore. It has become part of how I use Blender. Baketools has enjoyed continuous development for a few years and has become better and more stable with every release. However, there are still bugs present and features I miss that could make life just that little bit easier.
What is Baketools? Baketools is an add-on that extends and simplifies Blenders baking solution. We get features such as batch baking and a whole new set of possible bake types that corresponds to the map types we recognize from common PBR workflows. In a recent release, anti-aliasing was also added, something that Blenders baking system has been missing from the beginning.
In this review we take a look at version 2.1 for Blender 2.8x and see if it is worth your time and money.
I think it is.
External link: Get Baketools from Blendermarket.
How to install, and what are the features of Baketools?
When we download Baketools we get a zip-file. Unlike many other add-ons we first need to extract this file. It contains three additional files.
- The add-on zip file
- We use this for the actual installation.
- Manual PDF file
- Contains a few pages with some basic instructions.
- README file
- Contains a detailed change log.
From here we install the add-on just like any other. If you are unsure how this works, you can read about it here.
Related content: 30 Blender add-ons (install, manage, free and paid)
We then access the add-on interface from the right side properties panel in the 3D viewport. Press “n” to toggle. It appears as its own tab labeled “Baketools”. If it doesn’t appear, change your render engine to Cycles.
This is probably the most common place to put interfaces for add-ons and I think it’s fine. Perhaps putting it in the Cycles render settings would have made slightly more sense, since it is Cycles only. But the interface also takes up a pretty substantial amount of space so having it here leaves the full height of the 3D viewport to overview the settings.
There is also a Baketool version for Blender 2.79 that we can use to bake with the Blender internal render engine. But I won’t dive into that here.
If you are familiar with baking you will find the interface to be straight forward and simple to use. We could say that there are three levels of settings.
At each level we can add multiple entries with its own settings. When we start the baking process the add-on will run through each job, looking at each object and create the selected passes for the objects in that particular job.
Job level settings
At the job level, we essentially have three different bake types.
- Bake from individual objects to individual textures
- Bake from individual objects to a common atlas texture
- Bake from selected to active, i.e. a high poly object to a low poly.
For each job we can have a different bake type. This just determines if we are using passes to bake texture maps using Blenders built in map types, or those defined by Baketools.
Baketools add these possible texture maps.
- ID Map
There are also your usual settings such as the save path, file format and render device.
We can currently bake with GPU or CPU just like the original bake implementation. But keep in mind that if you have an Nvidia RTX card you can’t use Optix since it does not yet support baking yet. We still need to fall back on Cuda in this case, but that is not a limitation of the add-on.
The last job level setting deals with UV maps. For a given job, we can choose to generate new UV Maps or use existing UV Maps on each object.
As far as I can tell, the auto generated UV map is made with a Smart UV Project.
The add-on creates a new UV Map to generate on, making sure that any existing UV Map does not get overwritten if you don’t specifically tell the add-on to overwrite a certain UV Map for a certain object.
Personally I pair Baketools with UVPackmaster 2 to quickly pack nice UV Maps ready for baking. You can read my review here:
Related content: UVPackmaster 2 review
Keep in mind that UVPackmaster has received significant improvements since I wrote the review. Some are even based on my suggestions, so make sure to also check out their product page if you are interested.
Object level settings
For each job, we then add any objects with either a specified UV Map or generated UV Maps for the whole job.
Using the eyedropper tool in this section makes it very easy to add multiple objects at once, leaving us with the task to specify the UV Map to bake to.
I would like to see the add-on look at the list of UV Maps and if there is only one available, pick that UV Map. But currently the add-on just leaves all UV Map slots empty to start with. A minor annoyance for sure, but would be a nice touch.
There isn’t much more to say about adding objects. It is very straight forward, easy and quick.
We set up bake passes on a job basis. Essentailly creating a map for each pass. If we bake individual maps we get a map for each object per pass.
If we bake in atlas & target mode, we get one texture for each pass regardless of how many objects we bake.
The settings we have access to depend on the kind of pass we want to bake. For instance, if we want to bake a normal map using the Baketools profile, we can set the normal type to Unity/OpenGL or Unreal/DirectX.
If we on the other hand use the built-in normal map pass, we recognize the settings from Blenders default baking interface, and we need to flip the green channel to bake a DirectX compliant normal map.
But all passes has access to some common settings such as resolution, anti-aliasing and margin to name a few.
In the case of anti-aliasing, keep in mind that Baketools bake a much larger texture map and downscale it to the correct resolution, increasing the bake time considerably.
A feature that I really miss in Baketools is the ability to save and use pass presets. As it is now, we have to set up all the passes and their settings for every job every time we want to bake.
Presets would speed up the add-on significantly. It is a feature that many batch tools miss and this often result in a large amount of time spent repeatedly setting up the same thing. Defeating the purpose which is to save time.
Being able to select a preset nicely named “Metallic PBR 4k OpenGL” for instance with all the passes setup and ready is not a hard feature to add for a seasoned developer and it turns maybe 10 clicks into 1.
How do we use Baketools?
While there are generally three kinds of bakes that we do.
- Low to high poly normal map bakes.
- Atlas, where we bake from many objects to one texture set.
- Individual texture sets for each object.
I think the individual bakes are the most common people perform, so I will describe how we can use Baketools for such a bake and leave the others for you to explore. There are also some hints in the manual you can read to get started.
Baking from shader to texture map using the individual bake mode
In this scenario we start with a material setup in the shader editor. It may use procedural and image textures. It can use multiple UV maps and depend on geometry based nodes such as the pointiness output from the geometry node or use box projection.
Essentially, any shader will do.
The important thing is that we have a UV Map that is non-overlapping, essentially contained in the 1001 UV space. We will use this UV Map as the target for our bake.
If we don’t have the required UV Map to output to, we can also have Baketools generate it through a smart UV Project.
Once we have one of more objects with these requirements we can create a render job in Baketools.
Set the bake mode to individual so that we get one texture for each pass we later configure.
Set the profile setup to Baketool so that we take advantage of the passes designed for easy use with a PBR workflow.
Set an output folder. We need to do this for every job since Baketools unfortunately defaults to a folder in the add-ons location. I wish we could at least set a custom default location for this.
Set up the file format and render device. Go with GPU if you can and PNG is the most common format for texture maps.
In the case of normal maps you may want to use a format that can support a higher bit-depth, such as tiff in some cases.
Next is the UV map settings. In most cases you will want to create your UV map manually or use some other tool such as UVPackamster to help you create the UV Map.
Related content: UVPackmaster 2 review
After that our next step is to select the objects we want to bake. Select them in the outliner or 3D viewport and press the eyedropper icon in the object settings.
For each object, select the UV Map you want to bake to.
Now we direct our attention to the pass settings.
For a Metallic PBR set of textures compatible with the Principled shader we need at least these maps:
- Normal map
Add three passes to the list and select the corresponding bake types for each. Then select the albedo pass.
The settings below will update according to the bake type in the selected pass. For albedo, we have the resolution, anti-alias, margin, color space and the type itself.
In most cases we only need to bother with the resolution and anti-alias if we need it. But keep in mind that Anti-alias adds significantly to the bake time.
The default margin of 6 is usually a good value. But change it if you get artifacts at the edges of your bake.
The roughness pass has exactly the same settings. For the normal map though we generally use tangent. But for the normal type you will need to select your output between Unity/OpenGL and Unreal/DirectX.
In case you want to use your normal map in Blender, select OpenGL.
Scroll all the way back up to the top and press BAKE to start your bake. By default, the baked images will be imported into your .blend project ready for use. You can change this in the “post render settings” section if you don’t want this to happen.
Baketools will name the texture maps according to this schema:
<job name>_<object name>_<pass name>.filetype
What are some downsides of Baketools?
There are still a few bugs that could use a fix. Most of these are minor annoyances, but nevertheless, I will explain my findings so that you can be the judge.
There are some interface bugs, for instance when we want to select objects from the objects list when the list is empty, the add-on throws a python error. Same goes for the Pass preview button in the pass settings.
When adding jobs, the naming can be a bit inconsistent if you previously deleted a lowered numbered job, resulting in multiple jobs with the same name.
When you hit bake, and the widget pops up, there are also inconsistencies if your user interface has a resolution scale higher than 1. This can result in the widget getting rendered partially or fully outside the screen. If this happens we might not be able to tell if the baking process started.
Since I use a 4k monitor, I like to have the resolution scale set to about 1.2. It would be nice if the widget adapted.
Same goes if we switch workspace during the bake process. When we switch back, the widget is gone, and we can’t be sure if the process got aborted or if it continues in the background. There is no feedback from the interface at all in this case.
Then of course presets for the passes would be great as mentioned earlier.
There is one more feature that I miss. That is an API. It would be awesome if I could write a few lines of code to batch bake with Baketools. But I understand that this would probably be a somewhat larger undertaking for a developer.
What are the benefits of Baketools?
Even if there are no presets for render passes, the add-on is fast to set up. The interface is easy to understand and the add-on does what it is supposed to do.
Baketools remove some hassle we otherwise have to deal with when baking with Blenders built-in system. We don’t have to go into the shader editor to set up and select an image texture node for the materials we want to bake for instance.
The profiles that come with Baketools also help us to easier bake PBR compliant maps and the anti-alias feature helps us with jagged edges even if it adds considerably to the bake times.
The add-on kind of get out of your way and just let you do your bakes with minimal friction apart from a few caveats.
The main feature, being the batch baking, is of course also in itself a huge time saver and makes the whole process so much more enjoyable.
External link: Get Baketools from Blendermarket.
If I know the concepts behind the problem a software is trying to solve, I should immediately be able to look at the interface and within minutes understand how it works.
If that is possible I know that I can use the software for a long time because I don’t have to relearn it every time I open the interface even if it sometimes takes a long time between uses.
It should also just precisely fill the need that I have and then get out of my way. The developers need to understand that their creation is a means to an end and not the end in itself.
I think that Baketools hit these points pretty well with just a handful of minor thorns in the grand scheme of things. A great tool that has had a few years to grow and develop.
External link: Get Baketools from Blendermarket.
The links to Baketools in this review are affiliate links, this means that you not only get a great tool for baking, but you also support both the continued development of the tool itself and artisticrender.com at no extra cost to you.
Thanks for your time.