bw logo

Chapter 5. Brush files

Brush files are used to store information used for terrain painting in World Editor.

They are described in the document Content Tools Reference Guide's sections Terrain Cloud shadows.

The grammar is listed below:

<root>

  <type>               string                   </type>
  <texture>            file                     </texture>
  <strength>           float                    </strength>
  <size>               float                    </size>
  <uProjection>        float float float float  </uProjection>
  <vProjection>        float float float float  </vProjection>
  <opacity>            integer                  </opacity>
  <uvLocked>           [true|false]             </uvLocked>

  <heightMask>         [true|false] 
    <h1>               float                    </h1>
    <h2>               float                    </h2>
    <h3>               float                    </h3>
    <h4>               float                    </h4>
  </heightMask>

  <slopeMask>          [true|false] 
    <s1>               float                    </s1>
    <s2>               float                    </s2>
    <s3>               float                    </s3>
    <s4>               float                    </s4>
  </slopeMask>

  <textureMask>        [true|false] 
    <includeProj>      [true|false]             </includeProj>
    <uProjection>      float float float float  </uProjection>
    <vProjection>      float float float float  </vProjection>
    <texture>          file                     </texture>
    <invert>           [true|false]             </invert>
  </textureMask>

  <noiseMask>          [true|false] 
    <minSat>           float                    </minSat>
    <maxSat>           float                    </maxSat>
    <minStrength>      float                    </minStrength>
    <maxStrength>      float                    </maxStrength>
    <noise>
       +<octave>
         <waveLength>  float                    </waveLength>
         <weight>      float                    </weight>
         <seed>        float                    </seed>
       </octave>
    </noise>
  </noiseMask>

</root>

Grammar of brush files

The list below describes the tags in brush files:

  • h1 (section heightMask)

    The minimum height in meters at which the height mask will be fully off. Heights below this value will not get painted. Heights between h1 and h2 are painted with a strength that varies from zero strength at h1 meters to full strength at h2.

  • h2 (section heightMask)

    The minimum height in meters at which the height mask will be fully on. Heights between h1 and h2 are painted with a strength that varies from zero strength at h1 meters to full strength at h2. Heights between h2 and h3 are painted with full strength.

  • h3 (section heightMask)

    The maximum height in meters at which the height mask will be fully on. Heights between h2 and h3 are painted with full strength. Heights between h3 and h4 are painted with a strength that varies from full strength at h3 meters to zero strength at h4.

  • h4 (section heightMask)

    The maximum height in meters at which the height mask will be fully off. Heights between h3 and h4 are painted with a strength that goes from full strength at h3 meters to zero strength at h4. Heights above h4 will not get painted.

  • heightmask (section textureMask)

    This is used to determine whether the height mask is enabled.

  • includeProj

    This is used to determine whether the texture mask compares texture projections as well as the texture name when choosing which layers to replace.

  • invert (section textureMask)

    Invert the sense of the texture mask. If this is false then painting with the texture mask will replace the masked texture. If this is true then painting with the texture mask will replace everything except the masked texture.

  • opacity

    The opacity of the brush. The scale is 0 is completely transparent and 255 is completely solid.

  • minSat (section noiseMask)

    This is the minimum saturation value of the noise as a number between 0.0 and 1.0. All noise values below this value get set to the minimum strength (minStrength).

  • minimumStrength (section noiseMask)

    This is the minimum strength of the noise mask as a number between 0.0 and 1.0.

  • maxSat (section noiseMask)

    This is the maximum saturation value of the noise as a number between 0.0 and 1.0. All noise values above this value get set to the maximum strength (maxStrength).

  • maximumStrength (section noiseMask)

    This is the maximum strength of the noise mask as a number between 0.0 and 1.0.

  • noiseMask

    This determines whether the noise mask is enabled.

  • s1 (section slopeMask)

    The minimum angle in degrees at which the slope mask will be fully off. Slopes below this value will not get painted. Slopes between s1 and s2 are painted with a strength that varies from zero strength at s1 degrees to full strength at s2.

  • s2 (section slopeMask)

    The minimum angle in degrees at which the slope mask will be fully on. Slopes between s1 and s2 are painted with a strength that varies from zero strength at s1 degrees to full strength at s2. Slopes between s2 and s3 are painted with full strength.

  • s3 (section slopeMask)

    The maximum slope in degrees at which the slope mask will be fully on. Slopes between s2 and s3 are painted with full strength. Slopes between s3 and s4 are painted with a strength that varies from full strength at s3 degrees to zero strength at s4.

  • s4 (section slopeMask)

    The maximum slope in degrees at which the slope mask will be fully off. Slopes between s3 and s4 are painted with a strength that varies from full strength at s3 meters to zero strength at s4. Slopes above s4 will not get painted.

  • seed (section noiseMask/noise/octave)

    The number used to seed the noise for this octave. Changing the seed allows for multiple copies of similar looking noise to be used.

  • slopeMask

    This is used to determine whether the slope mask is enabled.

  • strength

    The strength of the brush from 0.0 to 100.0.

  • size

    The size of the brush in meters.

  • texture

    • Section root

      The name of the texture used to paint with.

    • Section terrainMask

      The name of the texture to mask against.

  • textureMask

    This determines whether texture masking is enabled.

  • type

    This identifies the brush type. Currently this is set to "TerrainPainting".

  • uProjection

    • Section root

      The u-projection of the brush. This combined with the vProjection defines an orthogonal coordinate system from which the yaw, pitch, roll and u/v scales are derived.

    • Section terrainMask

      The u-projection of textures to mask against.

  • uProjection

    The u-projection of the brush. This combined with the vProjection defines an orthogonal coordinate system from which the yaw, pitch, roll and u/v scales are derived.

  • uvLocked

    If true then the u and v scales are locked to be the same.

  • vProjection

    • Section root

      The v-projection of the brush. This combined with the uProjection defines an orthogonal coordinate system from which the yaw, pitch, roll and u/v scales are derived.

    • Section terrainMask

      The v-projection of textures to mask against.

  • waveLength (section noiseMask/noise/octave)

    The size of an octave of noise in meters.

  • weight (section noiseMask/noise/octave)

    The relative weight of an octave of noise. Octaves whose weights are larger will contribute more to the overall noise.