Bake Wrangler - Node based baking tool set

Bake Wrangler is a nodes based extension and replacement for the inbuilt baking system. The aim is to provide a highly configurable but easy to use baking system with all the extra features you really wish you had.

Gumroad: gum.co/bake-wrangler
Blendermarket: blendermarket.com/products/bake-wrangler

User Documentation: bake-wrangler.readthedocs.io
Videos: YouTube - Bake Wrangler Quick Intro
Tutorial Play List

Current Features:

  • Easy to use node system
  • Background batch baking
  • Supports all the blender internal bake passes and multires
  • Map data to RGBA channels independently via post processing nodes
  • Masking feature allows layering of bakes and combining with external processes
  • Objects are isolated within a pass preventing unwanted interference
  • All standard image formats, color-spaces and bit depths are available
  • Additional bake passes for better PBR and external engine support:
    • Albedo, Metallic, Specular, etc (All Principled BSDF inputs)
    • Curvature, Cavity, Height / Displacement, Thickness, Bevels
    • Other utility passes like Material IDs, Vertex Colors, etc
    • See full list here
  • Full set of post processing nodes for mixing, mathing, splitting and combining
  • UDIM tile creation automatically from UV layout
  • Automatic sorting and pairing of objects via name comparisons
  • Many more features, too many to list them all

Current stable version: 1.2.4 (Blender 2.9), 1.3.6 (Blender 3.0)

76 Likes

When I send a file as fbx to another program are the baked textures sent along with the fbx? When I open the fbx in the other program what do I do to for example to apply the wood floor texture to the floor or a ceiling beam at a 22 degree angle. Thanks

That is more a question about the fbx exporter and importing into what ever the thing your using is. But generally fbx files donā€™t have image textures in them, they do usually have the name of the material that an object has.

I canā€™t really say how you would apply the texture in an unknown other program? Usually they have some option to pick images to use for what ever shading system it hasā€¦

There is a place to attach the image file. In the baking process is there a folder where the baked textures can be accessed and attached in the other program/ Thanks

Just discovered your addon today !
Thatā€™s a really nice work ! Got a feature idea. Could it be possible to create a High Poly Meshes node directly from the selected objects ?

Yes, that should be fairly straight forwardā€¦

I noticed all textures appear to be saved in Linear color space. While thatā€™s fantastic for most textures, game engines expect base color input to be in sRGB. Perhaps adding a color space selector to the image output would be the best solution?

Otherwise, this is fantastic in my first tests!

Feature req: File name template options? So for example Tank_Normal.png and Tank_ORM.png (the latter would RGB mapped to Occlusion/Rough/Metallic for glTF format).

So something like
%O = mesh_object.name
so we could do %O_Normal.png and just use the same node setup for consistency.

2 Likes

Yes, there is still a bit of work to be done on the image output stuff. Unfortunately the format settings arenā€™t easy to manipulate from an add-on (afaik you canā€™t make your own ImageFormatSettings data blocks). But I intend to provide a lot more control over the output in the next version!

As to additional features, there are a number that people want. But itā€™s difficult for me to add them without support from donations/sales.

Is the price in Australian dollars or something else on Gumroad? They donā€™t detail what ā€œA$ā€ means which put me off from buying it(because I didnā€™t know what the conversion is) the first time I saw it.

Yes itā€™s AUD. I didnā€™t mean to use that, but you canā€™t seem to change it without making a completely new productā€¦

Ive been testing this out a bit. Really awesome so far. I like the idea of having mutliple bake groups all slotted with nodes into a Bake Pass. Really unique and useful.

The one issue I run into pretty consistently is that I get a ā€œbake failedā€ error for seemingly no reason when I start to dupe or change around the ā€œOutput Image Pathā€ node. Usually deleting and remaking seems to work but Iā€™m not sure if thereā€™s anything else going on in the backround.

Really looking forward to watching this develop. I still use Marmoset to bake for production assets but it would be nice to switch over to the Bevel node and this plug-in for non-first person assets.

Iā€™m glad you like it!

If you can save some of the log files when the bake fails I will look into what is causing your issue. (The log location is displayed in the system console, on windows with default settings it will be in the usual ā€˜AppData/Local/Temp/blenderxxxx/ā€™)

Oh awesome, Iā€™ll try to find it and grab it next time it fails.

Thanks

I really like this - itā€™s a huge timesaver, but I have one question.

Is it capable of handling Mix Nodes?

I often encapsulate the Principled BSDF node in a Node Group that allows me to redirect any input to an Emission shader, so that I can bake all the different maps (Base Color, Metalness, Roughness, Clearcoat etc.) using Emit baking in Blender. The good thing is that I can use Mix Shader nodes to blend different ā€œsubmaterialsā€ together and it all gets baked properly.

BakeWrangler gave me a warning that thereā€™s no Principled BSDF node in the end of the Material node tree - (but itā€™s baking something still, weā€™ll see how it goes).

Would it be possible to handle the materials using Mix Shader nodes?

Hi unfa, I also used to do a similar thing where my Principled would be in a group. The idea when creating Bake Wrangler was to avoid the need to do that, since I found it annoying to have to keep changing the outputs.

So the current three PBR targets (albedo, metalness, alpha) examine the texture node set up and try to find those inputs on the Principled BSDF. Probably people might want other targets, but those were the main ones I used.

How are you imagining it handles the Mix Shaders? Do you have multiple Principled BSDFs connected to mix shaders? It could probably handle that, I just need a way to determine what values contribute to the map and how they should be mixed.

Can you post an example texture set up?

1 Like

@netherby
Hi ! I know you canā€™t work full time on your addon (iā€™m in the same situation, my time is totally consumed by work and school), but a while ago, i tried to bake a model containing curves, and realized it didnā€™t bake curves.
I took a look into your code to see if i could fix it, (just five minutes ago), and i did it.
I just replaced you value_prop_filter function in your BakeWrangler_Socket_HighPolyMesh class by this:

    def value_prop_filter(self, object):
        return object.type in ['MESH', 'CURVE']

And it works like a charm :wink:

I wish i could help you financially, but itā€™s a bit hard for me. However i could maybe help you on some features if you wish.
I think this addon should be the way to bake in blender. From all the methods iā€™ve tried, this is by far the most convenient (though some things could be automated IMO).

Keep it up :smiley:

Edit:
By the way, i ran into a weird issue while baking today.
I modeled a router with Hops and KitOps, but though every parts were to be baked were inside the high poly node and them being all view/render enabled, only 3 of them were taken into account during the bake.

1 Like

Iā€™m back again.
I think i found the issue with my bake. I seems boolean modifier is not taken into account during the baking process (Modifiers not applied during export ?).

I kept experimenting with the code, and if you are interested i added a Collection node plugable in HighPolys sockets. Also added a property for each Collection input for recursive search of Renderable (mesh or curves not hidden for render to be precise) objects. Search Filter doesnā€™t show empty collections to make it easier for the user to browse collections.

1 Like

Hi Darknoodles.

I hadnā€™t really considered that people might want to bake a curveā€¦

All modifiers that are enabled for rendering get applied before a bake pass is done (there were some problems with modifiers in some cases, so the easiest solution was to just apply them always). Are your booleans enabled for render? They should get appliedā€¦

I also planned on having a more verbose debugging mode that could be enabled from options, though there are logs made for every bake which would show any actual errors that get thrown.

If you want to donate code that is fine! :slight_smile: I was planning on having collections select-able, I thought I might just make it part of the high poly meshs nodeā€¦ Do you want to get added to the github project or something so you can submit code?

Yeah, they are render enabled.
I searched a bit more, and it seems to only happen with boolean.
Thatā€™s weird, because when i open the passes in the temp folder, the scene looks ok.

Sure ! I can send you the code in PM in the first time if you want, but iā€™ll be glad to join the Git :smiley:

Hello everyone,
I tried the addon yesterday and I found it quite useful.
Node approach to baking and informative logs help a lot. Hope youā€™ll find the motivation to continue working on this :slight_smile:
There are a few things Iā€™d like to ask about the addon.
-If I first bake to a 1024x1024 image and then without deleting the file bake a 2048x2048 it ends up with an error. I think it is because addon is trying to add an Alpha channel to a different sized texture. This happened with RGBA targa file. Not a big issue since I can just delete the previous bake file.
-I was testing High to Low mesh. I have multiple high poly meshes. Low poly is just a joined mesh of all high poly meshes with a single UV and one material. It is like baking down multi materials into one material workflow. In High meshes, Albedo textures are set as ā€œSRGBā€ Color Space. In Bake node Editor, I set the Output Color Space as ā€œSRGBā€ as well. But after baking if I imported the baked albedo texture and set it to ā€œSRBā€, colors donā€™t match (with high poly materials) but If I set it to ā€œLinearā€ then the colors match. Is this a bug or am I doing something wrong? Would it be possible to transfer multiple albedo texture to a new UV without effecting its colors?
-What is ā€œMaskā€ in ā€œBake Passā€ node used for ? I read the tool-tip but still couldnā€™t understand.

Thanks and have a great week.