BATS | PBR Material Creation With Layers

by Joshua Knauber in Scripts and Addons

This addon is in beta! This will stay that way, at least until the first release of blender 2.8 is out (more info at the end). *

Blender Artistic Texturing and Shading

BATS is an addon for blender 2.8, that makes use of Eevee and especially the Look-Dev viewport, to give real-time feedback when creating materials.

Aidy Burrows: 

"A much desired and much required set of PBR texturing tools, very impressive and pretty complex materials can be achieved without even entering a node graph once!! "

Layer system instead of complex node graphs

It adds a layer system with customizable PBR channels, which makes creating materials a different experience. That means there's no need to worry about complex node trees anymore!

The concept is similar to Substance Painter's approach and takes the concept of layers in a 2D program to create materials for 3D objects.

UI and workspaces

The BATS workspaces are designed to give you as much viewport space as possible, so you can focus on what's important.

Eevee for realtime material creation

The viewport uses the Look-Dev view, to give you realtime feedback when editing your materials.

Function overview

The layer system gives you the power of blending modes to combine textures and procedurals into your material.

The layers generate the nodes, so you don't have to worry about complex node trees anymore.

The layer stack gives you information about the content of your layers, to save time and make your workflow as fast as possible.

You have the ability to edit each channel individually for each layer. This enables you to combine the channels in different ways.

You can change the blending mode for the channel of a layer, to achieve different results.

Masks can be procedural or painted with textures. This gives you the ability to mix different layers or channels.

The PBR baking function allows you to bake your layer stack into textures. These can be used in your material for quicker rendertimes or you can import them in your game.

You can choose whatever resolution you need and bake up to what your computer can handle.

If you want more detailed information about how this addon works and what it does, take a look at the documentation tab!

* I can't guarantee a 100% stable addon until the official blender release of 2.8 is out. I've had a few people testing for a few weeks and we got it into a great state, but if blender isn't stable an addon running on it can't be either. If you encounter issues please contact me (see FAQ) to get this addon as good and stable as possible!

Also when the first release is out the pricing might change, so get it now!



  • Add 2D view option in settings panel
  • Add current layers name on top of editing panel
  • Add opacity value to every channel in editing panel
  • Add option to make Material/Mask tab a dropdown
  • Make two panel workspace the default
  • Renamed viewport settings to workspace settings
  • Always show shader input settings
  • Fixed an issue where the shader input settings wouldn't show up
  • Fixed an issue with baking when selected to active was enabled


  • Added setting for disabling and changing the shortcut for HDRI rotation in the addon settings
  • Added "Use Alpha" option for mask textures. This uses the alpha channel of the texture for the mask, instead of the color
  • Added "Transparent Layers" option in the texture settings. When enabled, a texture mask with "Use alpha" gets added when you add a texture to the color channel of the layer. This is useful for handpainted textures, as it allows for a similar stacking of layers with transparency as in a 2D program
  • Added default visibility setting for the channels in the layer settings
  • Reorganized settings panel with subpanels
  • Fixed layer name in edit panel not updating when renaming the layer


  • Added button in BATS side panel to append the assets so files which don't need BATS are kept cleaner
  • Added option to display constant color directly in the layer view
  • Added blending mode for layers option which will set the blending mode for all channels
  • Added option to add custom image slot to mask node groups by naming the input "IMAGE_nameofyoursocket"
  • Added ID Mask to asset file
  • Set tilesize to resolution when baking (should give speed improvements in some cases)
  • Fixed texture masks not baking correctly

BATS – Blender Artistic Texturing and Shading

|| Documentation for V1.0 ||


BATS is an addon for blender 2.8, that makes use of Eevee and especially the Look-Dev viewport, to give real-time feedback when creating materials.

It adds a layer system with customizable PBR channels, which makes creating materials a different experience.

The concept is similar to Substance Painters approach and takes the concept of layers in a 2D program to create materials for 3D objects

If your used to creating your material in blender, be warned, that you will have to rethink your process. Even though it's a different concept it's very powerful and allows you to create quite complex materials in a very short amount of time.

The addon hierarchy goes as follows:

            A blender material can have as many layers as you'd like.

            A layer has a diffuse, a metalness, a roughness and a height channel.

            Each channel and the entire layer can have different masks and opacity values.

            Each channel can have a different blending mode.

This should give you a bit of an understanding for how the addon tries to use its system to give you the ability to create materials. In the following text, the different features for layers, custom assets, baking textures and much more will be explained in more detail.

Also it should be mentioned, that if possible, always bake your layers before using the textures in rendering. This will improve the render times greatly as it goes from a lot of nodes to just a few.

Your workflow should include saving the finished file with the layers separately to have a backup of them and then cleaning up the material by using the baked textures in another file. This way you still have the ability to change your material by editing the layers, but you can also quickly bake them and use them for rendering.

Things not to do:

Change the workspaces more than just closing or resizing panels

Change the node tree, when you still want to work with layers

Change the objects mode while using the addon

Things to do:

Create awesome textures and materials and share them with #BATS !


You install the addon, like you would any other addon in blender:

Go to the settings click on “Install from file” in the addon tab. Select the zip file and click “Install”. Then restart blender and everything should work. Everything regarding the addon takes place in the BATS workspace, which will get imported automatically from the asset file.

If you already have a version of the addon installed, make sure to uninstall it, then restart blender and then install the new version.

Addon Settings

The addon has a few settings in the user preferences:

The first setting is the asset file path. This needs to point to the asset file, which is included with the addon. Put that file somewhere, where you don't have to move it all the time.

Then there's a reverse layer order option. This will reverse the order the layers are displayed in and switch the functions of the move up and down buttons.

The Auto Save option makes sure every texture you create or edit gets saved in the cache folder, which will be created wherever you save your blend-file. If this option is not enabled, you will have to save your textures manually in the Tools-Panel.

Asset File

The asset file has two workspaces, which you shouldn't change! Which one gets imported into your blend-files depends on if you have the two-panel option in the settings panel checked. The two-panel workspace separates the edit and the overview tab into two separate panels, so you have both always open.

Apart from the workspaces there are node groups for the masks and shaders. These can be customized, and you can add your own. This will be explained later in this document.

Settings Panel

The settings panel can be found in the BATS workspace. It contains settings for the addon, which need to be accessed more often.

The “Overall Height” setting controls the Overall height of your material. Note that this will also be considered by the PBR baking. This setting is per material, so it depends on which material your editing. How you can edit different materials is explained later.

The “Two-Panel Workspace” setting imports the other workspace from the asset file and essentially splits the edit tab from the overview tab, to display it in a separate panel.

“Background Rotation” and “Background Visibility” control the background image in the viewport. You can also rotate the background image with the shortcut “Shift + Double-Right click”. This allows you to drag your mouse, which will rotate the background.

“Enable Random Colors” will add a random color to every layer you create.

The textures path should point to a directory, which has you PBR textures in it. Please make sure that each folder only has one set of PBR textures. These textures can be imported over the thumbnail import, which will be explained later.

The “Texture Resolution” and “Texture Color” are the defaults for every texture that you create with the addon. How that's done will be explained later. The Color Depth is what textures will get saved with.

The simplify options can be used to make the viewport faster.

Addon tools and UI

This section will explain the main features of the addon and tell you how to work with the User Interface in the BATS-Workspace.


The layers panel contains most of the functionality. First you will see two drop downs. The first one is used to select the material, that you’re working on. Materials with 0 users will not be shown here.

The second drop down determines which channel you’re working on. This will affect multiple things. The blending mode and opacity displayed in every layer can be changed per channel. Masks can be added per channel as well. If you have “Layer” selected it will affect the entire layer, meaning if you change the opacity it will influence all channels. If you add a mask for the entire layer it will also mask all channels.

The ghost icon can be used to toggle a preview view on and off. This will add an emission node to preview a single channel. This can of course not be used when “Layer” is selected.

If you have not checked the “Two-Panel” option, the next thing displayed is the tab selection between Overview and Edit. If you choose Overview you will see the layer stack, in the Edit tab you will have settings for the selected layer.

Then there are the layer operators. These include adding, removing and moving up or down. These options will depend on what layer you have selected.

If you have added layers, those will be displayed underneath. A layer looks like this:

First is the radio button to select a layer

Then there's the layer name which you can change

If you have a channel other than “Layer” selected from the drop down, you will have a drop down to select the blending mode of the channel

Next to that is the opacity value, which you can change by dragging over it or by clicking on it to type in a value

Underneath those settings are icons for switching to the edit tab, in material or mask mode. The icon will change, depending on what is selected as the channel type and for the mask. This is quicker than selecting the layer and then using the tabs

The eye is for toggling the visibility of the channels or the entire layer



In the edit tab, you get the settings for the layer and its masks.

You get two new tabs, to switch between editing the material and with it the channels or the masks.

When you’re in the material tab, you have a drop down, which by default has None selected. The other options are the shaders from the asset file. If you add your own ones, they will show up here as well.

Then there is a toggle for each channel. If a channel is toggled off, it basically hides it, meaning you won’t get settings for it and it won’t affect this layer.

Then you have a sub-panel for the mapping settings. This will change the mapping for all textures on this layer. The masks have a separate setting.

If you have a shader other than None selected, there will be another sub-panel for the shader settings. The shader settings are the inputs of the node-group that makes the shader.

Then there are the channel settings. These will show up for all channels that are toggled on. You can switch between constant, shader and texture. If you select constant, there's a color value to affect the channel.

The shader option will use the outputs from the selected shader, if it's available.

The texture option will allow you to select a texture or create your own.

A texture can be created by clicking on the pencil icon. The texture painting view will be explained later. The folder icon allows you to select a texture in the file browser.

The buttons up top are for switching all channel modes. The assets button will open a thumbnail view, in which the files, that you've selected in the settings panel. It will then try to select the other PBR textures from the same folder and assign them to the other channels. The load textures button will also import the PBR textures from one selected one, but it will open a file browser for you to select one.

The three buttons underneath will set all channels to that mode.


The mask tab has a sub-panel for the mapping settings. These will affect all textures in the masks, but not the scale of the masks that are node-groups, as they have their own settings.

What the mask is affecting depends on what channel you have selected. That means you can edit the settings and choose a mask for each channel.

The next subpanel holds the settings for the mask. If you have “Image” selected as the mask type, you will have the option to select an image from a file or create your own. If you have any other mask selected, it will show you the inputs of the node group.

If there’s a color ramp, it’s important to know, that this setting will change all masks of that type.

Texture Painting

You can access texture painting mode, by clicking the pencil icon next to a texture slot.

The Layers panel will then look different.

The drop down is for selecting the object, you’re painting on. If multiple objects have the same material this can be useful.

The “Preview Texture” button shows the texture you’re painting on. If it’s turned off, the material will be shown.

The “Use painting mask” toggle, allows you to select parts of your model to paint only those parts. Note, that you can also use the “L” shortcut to select a bigger portion of your model. You can then use the usual texture painting options for painting.

The invert texture button inverts the texture, which can be useful for painted masks.

The Finish button will take you back to the normal setup. If you have auto save enabled, this will also save your texture in the cache folder.


The Tools panel holds a few buttons that can be useful.

The import assets button will reimport all assets. This can be used if something wasn’t loaded correctly.

The clear textures button will try to remove all unused textures, both from the file and from the cache folder. It can be good to press that button occasionally.

The save textures button is the manual alternative to the auto save option in the addon settings.


In the baking panel, you can bake your materials to PBR textures or bake ambient occlusion and bevel masks to use in your materials.


In the PBR tab you can select the material you want to bake. In the settings you can change the resolution and decide what textures you want to bake. You will also have to choose a file path, where the textures are saved to.


The AO baking has settings for the resolution and the samples, which the texture is created with. It will be saved to the cache folder.


The Bevel baking has settings for the radius of the bevel, the contrast of the mask and the resolution and samples, the textures is created with. Keep these samples lower than those for the AO.

Custom Assets

Custom assets can be added to the asset file.


Shaders are node-groups that have named outputs. The names need to fit the PBR channels: Color, Metalness, Roughness, Height

The name of the group needs to look like this: __nameoftheshader

The inputs will be shown in the shader settings panel. You can’t have vector or BSDF inputs.

You can do whatever you want in the node-group, just make sure it ends in the named sockets.


Masks need to have a single output. The name does not matter.

The name of the mask group needs to look like this: nameofthemask__

The inputs will be shown in the mask settings panel.

There are a few special inputs:

If you want to expose a color ramp from inside the group to the settings panel name your input like this: CR_nameofthecolorramp_nametoshowinpanel

nameofthecolorramp: This is the name of the Color Ramp as shown in the N panel

nametoshowinpanel: This is the name that will be shown in the settings panel

It’s important to know, that the color ramp setting will be global, so only use it if it makes sense.

If you name a socket BEVEL_MASK or AO_MASK it will be shown as a texture socket in the settings panel. Use this if you want to have an ambient occlusion or bevel mask as part of your mask.

When you have added your groups to the file, they should show up in the corresponding drop downs.

Known issues

Using BATS with KitOps:

Your material might stay white on an object you used KitOps on. You can fix this by switching the normal node in the material nodes from Tangent to something else, but this will mess with your normal channel.

Everything turns pink:

This seems to be a limitation of CUDA when you have to many textures (see here: A possible solution, even though not a great one, could be to bake your layers and import them as a single layer. If you have any idea on how to improve on this problem, please let me know!

I have a question about the addon, where do I ask?

Please contact me on Blendermarket directly, or over twitter (@joshuaKnauber). If you reach out to me on twitter, I'll get back to you quicker.

I found a bug, what do I do now?

Please contact me on Blendermarket directly, or over twitter (@joshuaKnauber). If you reach out to me on twitter, I'll get back to you quicker.

Item Rating

This item has an average rating of 4 from 7 ratings by the community.

  • Grady 17 days ago

    UI is a mess and it seems buggy.

    • Joshua Knauber 17 days ago

      Hey, can you please give some more detailed feedback on how you think the UI could be improved and what bugs you encountered? Otherwise I can't really do anything about your problems with the add-on!

  • Juan Mendoza about 1 month ago

    Good in theory but i tried it and still lost, i will love better documentation or a step by step tutorial because i can't figure out how it works

    • Joshua Knauber about 1 month ago

      I've been really busy in the last months, but I will definitely do a lot more tutorial content with the future updates!

  • Francisco about 1 month ago

    Is a great tool for texturing, but I think its still at a early stage, but for now is very promising!

  • white-wh 3 months ago

    Great job!

  • butthe4d 3 months ago

    Very useful Addon thats easy to use!

  • toomanydemons 3 months ago

    Great stuff! It's not a Substance replacement but could be well on it's way to doing exactly that. I can't wait to see where this goes. It looks great, so I'm giving it my 5 stars in advance. ^_^ All hail Blender 2.8!

  • Colin Behrens 3 months ago

    Hey it's me from the YouTube comments, I am glad that it was so fast accepted and as I said; directly bought :)

    ~ Colin

Purchase this item to leave a review!