Overview
Splats and decals are special ground decorations that you can place on your map to add variance and colour to the terrain.
Splats
A Splat is a 2D texture plane projected onto the terrain surface only (not onto objects)
Splats have the following properties:
- Projects only from above, meaning on steep slopes, it can appear stretched.
- Splats are relatively cheap to use and a very common asset to map dressing.
- A splat will become part of the terrain texture along with tiles and splines, so any prop with a terrain blend shader will "pull up" this texture onto its mesh.
Decals
A Decal is a 2D texture within a 3D volume projected on the terrain surface as well as 3D models
Decals have the following properties:
- Unlike splats, decals can be rotated to project onto the side of something (ie: a mesh building or a terrain cliff).
- Decals are much more expensive than splats and should be used more sparingly.
- Unlike splats, decals DON'T become part of the terrain texture and will not have their texture pulled up onto any prop with terrain blend shader.
Splat and Decal Example
The example below shows the difference between a splat and a decal.
Note that a splat is a 2D plane, and does not show on the prop. A decal is a 3D volume, and does show up on the prop. This is especially noticeable when scaled up.
Adding Splats and Decals to your Map
To add a Splat or Decal to your map, use the folder structure in the Object Browser to navigate to your desired Splat or Decal.
These are located under the file path: Templates > Art > Scenarios > Textures
Once in the desired folder, select the Decal or Splat you wish to import into your ma, Left Click and Drag it onto your map.
Alternatively, once your Decal or Splat is selected, you can Right-Click on the map to place it.
Using either method, your chosen Splat or Decal will appear on your map at the location you chose.
Proper Scale
It's important to note that Splats and Decals added in this manner will automatically scale themselves to the correct size based on the image resolution.
There are two other Alternate Methods to add Splats and Decals to your map that don't auto scale these items, detailed in the section below.
Splat and Decal Properties
When a splat or decal is selected, its information will appear in the Properties panel on the right side of the screen.
The attributes for Splat and Decal properties are listed below.
Splat Blueprint Properties
Editor
- Comment: Allows you to comment on an individual splat. This note only appears in the editor.
- Display Name: A unique name for your splat so it can be found again in a folder of many decals.
- Exclude From Game: Allows you to exclude the selected splat from the game.
- Locked & Visible: Locks or unlocks interaction with the spat.
Appearance
- Colour: Allows you to tint the splat, adjusting its hue, saturation, brightness, and transparency.
- Mirror X and Y: Flips the image along the x or y axis.
Blueprint
- Blueprint: Shows an image of the splat image in detail.
- (...) Button: Allows you to browse for a different splat to replace it.
Grass
- Add Grass: allows you to choose a grass to "grow" from the splat.
- Remove Grass: When ticked will remove grass from on top of the splat.
Scenario References
- Exclude From Scenario Reference: If checked this splat will not be in any other scenario reference file that uses this file as it's reference.
Transform
- On Snow: If checked this will place selected splats on a tier above other splats or splines.
- Position: The splat's location on the map. The value (0,0) is the exact middle of the map.
- Rotation: Adjust the rotation of the splat.
- Scale: X and Z scale of the splat in meters. Note for proper texture resolution, a texture should cover around 5m x 5m.
Decal Blueprint Properties
Editor
- Comment: Allows you to comment on an individual splat. This note only appears in the editor.
- Display Name: A unique name for your splat so it can be found again in a folder of many decals.
- Exclude From Game: Allows you to exclude the selected splat from the game.
- Locked & Visible: Locks or unlocks interaction with the spat.
- Colour: Allows you to tint the splat, adjusting its hue, saturation, brightness, and transparency.
Appearance
- Angle Threshold: defines the value (in degrees) at which the projected decal will project onto the 'side' of something (and stretch down the sides), not just the top or face.
Note: the numbers are negatives because they're the values projected up and away from a surface, not down and onto a surface. so 0 is up, -45 is up and to the sides, etc. - Colour: Allows you to tint (multiply only) splats. adjusting hue and saturation, brightness and transparency.
- Decal Type: Allows you to set the type of decal, either Albedo, Normal, Specular, Gloss, Emissive, or simply all of these options.
- Emissive Intensity: Controls the intensity of the emissive surface.
Blueprint
- Blueprint: Shows an image of the splat image in detail.
- (...) Button: Allows you to browse for a different splat to replace it.
Scenario References
- Exclude From Scenario Reference: If checked this splat will not be in any other scenario reference file that uses this file as it's reference.
Transform
- Align Lock: Can set the decal to be none (just upright) or perpendicular (it will align to the terrain mesh normal and won't be perfectly "upright" on a slope or hillside. This is important for proper lighting of decals as you can see in the example below.
- Height Lock: Can set the decal to none (can be moved on all axis, including up), terrain (snaps only to the ground, even underwater), and surface (snaps to any surface such as the ground, the water's surface, and bridges).
- Offset: The decal's value in meters above or below the terrain
- Offset Lock: Locks the decal's offset to be either World Y (vertical or up and away from the terrain) or World X (at the location of the origin of the object).
- Orientation: Rotation of decal volume on all axis.
- Rotation: Adjust the rotation of the splat.
- Scale: X and Z scale of the splat in meters. Note for proper texture resolution, a texture should cover around 5m x 5m.
Sorting or Stacking Splats and Decals
You can Right-Click any splat or decal, and adjust the sorting to bring a splat that's below another to the top of the stack, or forward, backward or to back (bottom).
You can also see in this image... you can convert an existing splat to a decal (and vice versa) if you choose.
Creating Your Own Splats or Decals
You can add your own textures to create unique splats and decals. Creating your own assets will require external tools such as 3D Studio Max, Maya, or Photoshop.
This is an advanced step in using Splats and Decals, and is recommended only for experience modders.
How This Works
Splats and a Decals both use source art, the only difference is in how they function in-engine.
When creating a custom decal, you only need to create a single version of the art andsave it under: ...\assets\<project>\art\scenarios\textures\splats. There is no source art folder specifically for decals, decals use the same folder as they pull from the same assets.
Each file contains a .material file, an albedo (with alpha) (alb), alpha (alp), dielectric (die), metallic (mtl), normal (nrm) and roughness (ruf).
Note: height (hgt) is not necessary, or currently used by splats or decals. You can include a .emi too, for emissive for decals.
Material Files
The .material file looks like the example below, and is generally automatically generated on export from whatever source tools you use, e.g. Substance Designer.
Material File Example
<?xml version='1.0' encoding='utf-8'?>
<materialSet>
<!--d:\projects\cardinal\assets\cardinal\art\scenarios\textures\splats\biome_temperate_deciduous\dirt\source\dirt_plain_patch_10m_a.sbs-->
<material name="dirt_plain_patch_10m_a" type="shader" source="terrainmaterial">
<param name="albedoTex" type="tex2D" value="generic:art\scenarios\textures\splats\biome_temperate_deciduous\dirt\dirt_plain_patch_10m_a_alb.png"/>
<param name="alphaTex" type="tex2D" value="generic:art\scenarios\textures\splats\biome_temperate_deciduous\dirt\dirt_plain_patch_10m_a_alp.png"/>
<param name="dielectricTex" type="tex2D" value="generic:art\scenarios\textures\splats\biome_temperate_deciduous\dirt\dirt_plain_patch_10m_a_die.png"/>
<param name="heightTex" type="tex2D" value="generic:art\scenarios\textures\splats\biome_temperate_deciduous\dirt\dirt_plain_patch_10m_a_hgt.png"/>
<param name="metalTex" type="tex2D" value="generic:art\scenarios\textures\splats\biome_temperate_deciduous\dirt\dirt_plain_patch_10m_a_mtl.png"/>
<param name="normalMap" type="tex2D" value="generic:art\scenarios\textures\splats\biome_temperate_deciduous\dirt\dirt_plain_patch_10m_a_nrm.png"/>
<param name="roughnessTex" type="tex2D" value="generic:art\scenarios\textures\splats\biome_temperate_deciduous\dirt\dirt_plain_patch_10m_a_ruf.png"/>
</material>
</materialSet>