Total Brush (lite)

This tool is a GPU-based painting tool that allows you to paint vertex colors and texture masks.

The version shipped with the Weatherade system is fine-tuned to work with Weatherade shaders.

This tool utilizes the power of compute shaders, allowing it to paint even on high-poly meshes with decent performance.

Total Brush has two main modes:

  • Mesh Vertices
  • Terrain Extra Mask

Mesh Vertices

In this mode you can paint the colors of the mesh vertices, which are used as a mask to erase or add the coverage on the surfaces.

Terrain Extra Mask

In this mode, you can paint an additional texture mask, which will be automatically created and set to the selected terrain's material the first time you paint.

1. Select Scene Object

First of all, select an object in the scene which you want to paint on.

Include Children

In Mesh Vertices mode, paints MeshRenderers on all children of the selection when the parent has no renderer.

Isolation (experimental)

Opens paintable objects in an isolated environment while painting. This feature is experimental and may not work as expected.

2. Choose a Paint Tool

Total Brush offers two different paint tools:

  • Brush
  • Gradient (works only in Mesh Vertices mode)

3. Change Brush Properties

3.1 Brush Size

The brush size in units.

3.2 Brush Opacity

The opacity of the brush.

3.3 Target Value

This range defines the minumum and maximum values, that painted colors may have.

Weatherade uses the value of 0.5 as a default, meaning painting this value will not take any visual difference with the non-painted mesh. This made for the purpose to be able to add and erase the procedural coverage.

Internally, Weatherade shader rounds this value to determinate what to do with the procedural coverage mask - erase or add: if the value is >= 0.5, it will be rounded to 1, which means, that we add to the mask, otherwise - erase.

Next it remaps this value in the following way depending on the previous step to get the full 0-1 range of the painted mask:

  • add = (value - 0.5) * 2.0;
  • erase = value * 2;

And finally it lerps these values using the selected mode (erase/add) to get the final painted mask.

For example: if you painted the mesh vertices with 0.75, Weatherade shader will add 0.5 to the procedural coverage mask, but if you paint with 0.25, the 0.5 will be substracted from the procedural mask.

3.4 Brush Color

The RGBA color of the brush.

3.5 Normal Threshold

Limits painting by surface facing relative to the view. Surfaces that face away beyond the threshold are skipped (shown in red in the brush preview).

3.6 Geometry Culling

If enabled, parts of the geometry overlapped by other geometry are not painted (like spray that cannot reach the inside of a cup when painting the outside).

Culling Bias

How far from the surface culling takes effect. Values greater than 0 help when thin overlapping pieces (for example a plinth against a wall) would otherwise block painting.

4. Configure Channel Mask

The Channel Mask allows you to choose which color channels will be affected while painting.

Use the toggle next to Channel Mask to enable Solo mode: only one channel is painted at a time (useful when editing a single mask layer).

Channel usage depends on the shader:

5. Fill Out

If you are starting to paint on a mesh or terrain for the first time, it is recommended to fill its colors with the default value of 0.5 to override the existing vertex colors (for mesh renderes) or set the default gray color in the texture mask (for terrains).

Use the bucket tool button to fill with the selected color and multiplier.

6. Start Paint

Press the Start Paint button to enter the painting mode.

  • Left Mouse Button to paint.
  • LeftShift + Left Mouse Button to erase.

You can also open Total Brush from the Scene View overlay button while working in the scene.

7. Debug View

Debug View shows vertex colors on paintable objects while you work.

When Debug View is on:

  • Shaded — keep a shaded mesh in debug view.
  • Show Alpha — include the alpha channel; the debug mesh becomes semi-transparent.

Paintable Object

The first time you paint an object, Total Brush adds the Paintable Object component. It stores paint data and manages Additional Vertex Streams used to pass paint data to the MeshRenderer.

From the Paintable Object inspector:

  • Open Total Brush — opens the Total Brush window.
  • Restore — deletes current painted data and restores previous vertex streams if they exist.
  • Clear — deletes vertex streams completely, including current painted data.
  • Check Streams — validates/reports the current Additional Vertex Streams setup.