The Weightmap device processes a set of input masks so that they can be used as a weightmap (also called a splatmap) to drive texture distributions in real time applications such as Unity, Unreal Engine, etc.
The device ensures that all of the channels used respect the sum-to-one behavior required of a weightmap, as well as providing convenient controls to adjust the priority and contrast of the resulting weightmap.
Once you create your weight/splatmap with this device, you can then export it using a Bitmap Output.
How to Use
Set the number of inputs on the device equal to the number of texture channels you want to distribute, then connect all of the masks into their respective inputs.
Under typical usage, you’ll then have one or more RGBA images containing the packed weights available at the outputs. See the Parameters section for additional options.
Each input reflects a single channel that will be processed into the splatmap. You can specify the number of channels with the parameters below. Any missing channel assumes a value of 0.
There are 2 basic parameters and 3 advanced parameters:
- Number of Inputs: Set the number of mask input channels. For splatmaps this is typically 4, although sometimes 8 or more. Material ID/Texture atlas systems might use many more possible textures.
- Output type: There are 3 possible types of output from the Weightmap device, controlled by this parameter.
- Individual weightmaps: Each channel is again output as a unique mask, but they have been processed and adjusted by the device.
- Packed weightmaps: The channels are packed into RGBA bitmaps; The first channel is red, the second channel green, and so on. This is the typical expected form for weight/splat maps. Every 4 channels get packed into a single RGBA image.
- Material ID: This option outputs a single mask, containing the (normalized) channel number of the dominant material at that location.
For many purposes, the above parameters are all you will need to use. If you want to tweak the resulting splatmap further, show the advanced settings to gain access to the following:
- Priority Behavior: Control the method used to adjust the weights.
- Equal priority: The default, no channel is favored over another
- Favor top inputs: The first connected channels take ‘first dibs’ on the splatmap. For example, if the first channel had a value of 1.0 at a spot, no other channel would be allowed to contribute at that location.
- Favor bottom inputs: The inverse of the previous, this favors the last connected channels.
- Favor variety: A relatively exotic option, this promotes the channels having the lowest value to be dominant. This is rarely what you want for splatmaps, but it can be very useful as a tool to produce variety in texturemaps and masks.
- Favor best match: The channels take priority that have the highest value at that location.
- Priority: Control the strength of the prioritization specified above. Values of 0 mean equal priority.
- Exclusion: Exclusion pushes out all but the best-match at a given location. Thus, an exclusion value of 1.0 will ensure that only a single material exists at a given spot. Intermediate values provide sharper contrast between material boundaries.
Tips and Tricks
- The priority and exclusion controls are very powerful ways to tweak the contrast of the transitions between dominant materials in your splatmap. Try using Favor best match mode.
- The weightmap device can be used for more than just making sure the distribution masks sum-to-one. The priority controls allow you to adjust the relative strengths of one mask versus another, and can be used to construct textures inside of World Machine as well.
You cannot currently view the result of distributing high resolution detailed materials with the created splatmap within World Machine. This limitation will hopefully be lifted in future versions.