Ultimate Material Mixer & Painter Addon for Blender
BMixer+ is a powerful and intuitive addon for Blender (version 4.0 and newer) designed to revolutionize your material creation and texturing workflow. It provides a layer-based system for advanced triplanar material mixing, seamless PBR texture integration, procedural masking, anti-tiling solutions, and direct 3D brush-based painting capabilities.
Whether you're texturing complex models without traditional UVs, quickly iterating on material ideas, or adding detailed painted effects, BMixer+ aims to be your go-to tool. This comprehensive document will guide you through its installation, core concepts, features, and best practices to help you unlock its full potential.
Installing BMixer+ is a standard Blender addon installation process. You will need the BMixer+.zip
file (ensure you do not unzip this file beforehand).
Edit > Preferences...
from the top menu bar.
Add-ons
tab from the left sidebar.Install...
button, typically located at the top right of the Add-ons section.
BMixer+.zip
file. Select the .zip
file itself and click the Install Add-on
button.
Crucial: You must select the .zip
file directly. Do NOT extract the contents of the .zip file and try to install individual .py
files.
To access the BMixer+ panel, go to the 3D Viewport, press the N
key to toggle the Sidebar (if it's not already visible), and look for a tab labeled "BMixer".
If the addon does not appear after installation, or if you encounter issues, check the Blender System Console for error messages (Window > Toggle System Console). This can provide clues to what went wrong.
Let's walk through creating a basic material using BMixer+:
N
to open the Sidebar (if hidden) and click on the "BMixer" tab.
Create BMixer Material
. This adds a new material to your object and sets up the BMixer+ node tree.Initialize BMixer
. This will adapt the current material for BMixer+.It's generally recommended to start with a fresh BMixer+ material for clarity, especially when learning.
+
(Add Layer) button. A new layer (e.g., "Layer 1") will be created and automatically selected. This first layer often serves as the base material.Use Normal Map
box, then click the folder icon for "Normal Map Path" to load your normal map texture.
BMixer+ expects standard PBR texture maps. Ensure your Normal Map is in the correct format (e.g., Tangent Space).
Scale
, Location
(offset), and Rotation
of the triplanar projection for this layer to control how the textures map onto your object.Sync Real Time
(at the top of the BMixer+ panel) is enabled. This means changes you make should update the material in the viewport almost instantly. If you experience performance issues with very complex materials, you can uncheck this and click the Apply Changes
button manually.+
button again to add another layer on top. This new layer can have its own set of textures and transform properties.Layer Alpha
, Layer Mask
, Selective Blending
, or Brush Mode
to control how this top layer blends with the layer(s) beneath it. For example, add a "Rust" layer on top of a "Metal" base layer and use a Layer Mask to reveal the rust in specific areas.This covers the fundamental workflow. BMixer+ offers many more controls, which are detailed in the "Features" section. Experimentation is key to mastering the tool!
BMixer+ is packed with features to give you fine-grained control over your materials. These are primarily accessed via the BMixer+ panel in the N-Sidebar.
When checked, any change made in the panel immediately updates the material node tree and viewport display. This is great for instant feedback. Why use it? For quick iterations and immediate visual confirmation. When to disable? On very complex materials with many layers or high-res textures, real-time updates might cause slight lag. Disable it and use "Apply Changes" for smoother editing in such cases.
If "Sync Real Time" is off, this button manually rebuilds the material with all current settings. Why use it? To update the material after making several changes when real-time sync is disabled.
This button forcefully reconstructs the entire BMixer+ node tree from scratch based on current panel settings. Why use it? Useful for troubleshooting if the material seems broken, or to re-initialize a material if its internal BMixer+ data was somehow corrupted. Also used to convert an existing non-BMixer material to use BMixer+.
World Space
: Projection blending is based on world-axis-aligned normals. Textures might "swim" if the object rotates relative to the world.Local Space
: Projection blending uses the object's local geometry normals. Textures will generally "stick" better to the object's surface as it rotates or deforms.
Why choose? "Local" is often preferred for animated/deforming objects. "World" can be simpler for static scenes or specific effects.
Noise Scale
: Controls the size/frequency of this blend noise. Larger values = larger noise patterns.Noise Strength
: Controls the intensity/visibility of the blend noise effect.Displays all layers in a stack. The order is crucial: layers higher in the list are rendered on top of (and can mask or blend with) layers lower in the list.
Use the +
button to add a new layer, -
to remove the selected layer, and ▲
/▼
to move the selected layer up or down in the stack.
This is where you define the core PBR (Physically Based Rendering) properties for the layer using image textures or plain values.
Use [Map Name]
(checkbox, for non-BaseColor maps): This must be checked for the respective map to be active and used by the layer. If unchecked, a default value is used.[Map Name] Strength/Scale Factor
: Fine-tunes the influence of the map for this specific layer.
Use Plain Color
: If checked, the layer's Base Color will be a solid color defined below, ignoring any texture in the "Base Color Path."Plain Color
: A color picker to choose the solid color.Use Color Tint
: Enables tinting of the Base Color texture image.Tint Color
: The color used to tint the texture. The tinting is usually a multiply operation.Tint Strength
: Controls how strongly the tint color affects the original texture (0 = no tint, 1 = full tint effect).Has Emission
: Check to enable emissive (light-emitting) properties for this layer.Emission Map
: Path to an image texture defining emissive areas and colors. White areas in the map emit strongly, black areas emit nothing. Colors in the map define the emission hue.Emission Strength
: A multiplier for the brightness of the emission.Emission Color
: A solid color used if no Emission Map is provided, or it can be used to tint the Emission Map.Controls the triplanar projection mapping for this layer's textures.
Determines the sharpness or softness of transitions between textures projected from the X, Y, and Z axes.
Face Blend Power
(if Global "Simple Engine" is active): Controls blend sharpness for X/Y/Z.Global Power
(if Global "Advanced Engine" is active): Controls blend sharpness for X/Y/Z.X-Axis Power
, Y-Axis Power
.X-Axis Power
, Y-Axis Power
, Z-Axis Power
.This powerful feature uses a procedural noise texture to control the visibility of the current layer, effectively masking it to reveal layers below. It's excellent for creating natural wear, grunge, or patterned blending.
Scale
: Size of the noise features.Detail
: Adds finer details to the noise.Roughness
: Controls the jaggedness or smoothness of the noise.Distortion
: Warps or swirls the noise pattern.Provides techniques to reduce the noticeable repetition (tiling) that can occur when using seamless textures over large surfaces.
Use Voronoi Rotation
: Applies a random rotation to "cells" of the texture based on an underlying Voronoi pattern.
How it helps: By rotating patches of the texture differently, it breaks up the straight lines and obvious repetition of a standard tiled texture.
Scale
(Voronoi): Size of the Voronoi cells. Larger scale = larger rotated patches.Randomness
(Voronoi): Randomness factor of the Voronoi pattern.Strength
(Rotation): How much maximum rotation is applied to each cell.Use Color Variation
: Blends the layer's Base Color with a specified Dark Color
using a procedural noise pattern.
How it helps: Adds subtle (or strong) color variations across the surface, making the texture feel less uniform and hiding tiling by introducing unique color splotches or gradients.
Scale, Detail, Roughness
(Noise): Control the appearance of the color variation noise pattern.Strength
(Darkening): How strongly the Dark Color
is blended with the original Base Color.Dark Color
: The color to blend with (typically a darker shade related to the base texture, or a complementary color for specific effects).Enables direct 3D painting on the model to create a custom mask for the layer. This is ideal for artistic control and adding specific details where procedural masks are insufficient.
Smart UV Project on Paint Start
: If checked, BMixer+ will automatically perform a Smart UV Project operation onto a dedicated UV map (default: _bmx_brush_uvs
) when you click "Start Painting."
Why use it? Excellent for quick setups on models without existing UVs suitable for painting, or if you want a fresh UV layout just for the painted mask.
Brush Power
: A multiplier for the opacity/strength of your brush strokes as they are applied to the mask. Does not affect Blender's brush settings, but scales the result.Start Painting / Stop Painting
button:
Clear (X button)
: Completely clears the current layer's brush mask, filling it with black (making the layer fully transparent via this mask)._bmx_brush_ObjectName_LayerName
) and the UV map used for painting (_bmx_brush_uvs
).Sync Real Time
and use the Apply Changes
button to avoid slowdowns during intensive editing.Smart UV Project on Paint Start
provides a quick solution for brush mask UVs, for optimal painting results without distortion (especially on complex organic shapes), creating a well-unwrapped UV map named _bmx_brush_uvs
(or whatever you set in layer properties) beforehand can be beneficial..zip
file directly, without unzipping it first.Sync Real Time
is checked at the top of the BMixer+ panel.Sync Real Time
is unchecked, you must click Apply Changes
to see updates.Rebuild Material
might be needed if the node tree got into an inconsistent state.Scale
, Location
, and Rotation
in the "Transform" section for the affected layer(s).Triplanar Noise Mapping
in Global Settings if they appear stretched._bmx_brush_uvs
) is active in the UV Editor and selected in Blender's Texture Paint mode slots if you are manually checking. BMixer+ tries to handle this automatically when you click "Start Painting".Smart UV Project on Paint Start
is used, ensure the projection created reasonable UVs. You can inspect the _bmx_brush_uvs
map in the UV Editor.Global Displacement Scale
and the individual layer's Displacement Scale Factor
.Displacement Midlevel
(Global Settings) is appropriate for your displacement maps (usually 0.5).Your feedback is valuable for improving BMixer+! For support, bug reports, feature requests, or to share your creations:
You can also find my other projects and general contact information here: