====== 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.
You can enable a scene view overlay for the quick access to the Total Brush window by pressing the 'Space' key (Unity 2022.3) or '~' key (Unity 2023+) and selecting the TotalBrush-overlay in the popup.
This guide will only cover Weatherade-specific use of this tool.
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.
Works only with the Weatherade terrain shaders.
===== 1. Select Scene Object =====
First of all, select an object in the scene which you want to paint on.
In Mesh Vertices mode you can select several objects at once and paint on them all.
If you selected an object parent without the MeshRenderer on it, you can enable the Include Children checkbox in the Mesh Vertices mode. The tool will try get the MeshRenderers on all the children.
===== 2. Choose a Paint Tool =====
Total Brush offers two different paint tools:
* Brush
* Gradient (works only in Mesh Vertices mode)
In most cases you will need the Brush tool.
===== 3. Change Brush Properties =====
==== 3.1 Brush Size ====
The brush size in units.
Hotkey: LeftShift + Scroll Mouse Up/Down
==== 3.2 Brush Opacity ====
The opacity of the brush.
Hotkey: LeftCtrl + LeftAlt + Scroll Mouse Up/Down
==== 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.
Hotkeys:
* LeftCtrl + Scroll Mouse Up/Down for min value \\
* LeftAlt + Scroll Mouse Up/Down for max value
==== 3.4 Brush Color ====
The RGBA color of the brush.
This color is multiplied by the Brush Opacity value. So if you set white color, but used 0.5 opacity, you will get a middle gray at the end.
===== 4. Configure Channel Mask =====
The Channel Mask allows you to choose which color channels will be affected while painting.
In Built-in RP the Weatherade snow shaders currently only utilizes the ⠀R⠀ channel, while URP version can uses all four channels. But the rain shaders [[weatherade_manual:rain_coverage_instance:global_surface_settings?#paintable|utilizes]] all four channels in both BiRP and URP.
You can toggle the **Solo Mode** by enabling the checkbox to the right of the Channel Mask label.
This mode allow you to paint only one channel at a time just like in the Unity terrain texture painting tool.
In the **Solo Mode** the channels are named as '**Overall**', '**Layer0**', '**Layer1**', '**Layer2**' which corresponds to ⠀R⠀⠀G⠀⠀B⠀⠀A⠀.
You can select only one layer at a time in this mode. If 'Overall' is selected, Total Brush will paint into the ⠀R⠀ just like it did in the regular channels mode. But if any of the layers is selected, Total Brush will paint only that layer while erasing the other 2 layers respectively.
This mode is useful to paint 3 different snow layers in URP shaders, because in regular mode it will wrong, and the layers will always be visible under each other.
If you want to edit the entire rain mask, simply enable all channels while painting.
===== 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.
By default the color is white and the multiplier is set to 0.5 specifically for Weatherader shaders.
===== 6. Start Paint =====
Press the Start Paint button to enter the painting mode.
* Left Mouse Button to paint.
* LeftShift + Left Mouse Button to erase.
====== Paintable Object ======
When you first time paint any object, Total Brush adds the Paintable Object component, which stores paint data and manages the Additional Vertex Streams, that are used to pass paint data to the MeshRenderer component.