Skip to main content

SurfaceScorch

Development preview — not yet released on Fab.

SurfaceScorch adds char, soot and heat discoloration to static surfaces. Separate masks let you control each effect or use the supplied Material Attributes blend. The procedural patterns require no texture maps or UV unwrapping.

Eight SurfaceScorch presets in the Unreal Engine overview map

Native examples​

The same camera, lighting and base material with Intensity set to zero and one:

Original surfaceCharred Wood
Procedural timber surface with the effect disabledCharred Wood with longitudinal grain and fractures

Char and soot on architecture beside a clean comparison

Quick start​

  1. Open SurfaceScorch.uproject in Unreal Engine 5.0.3.
  2. Open SurfaceScorch/Maps/L_Overview to compare the eight presets. Use L_Closeup for detail and L_Environment for clean and conditioned architecture.
  3. Duplicate a material instance from SurfaceScorch/Materials/Presets and assign it to a static mesh.
  4. Adjust Coverage, Progression and Scale. Use Soot and Char to balance the two layers.

The demo opens with a fixed camera and a visible mouse cursor. There is no First Person or ActionMappings dependency; inspect other angles in the editor viewport.

Presets​

PresetUse
CharredWoodDark char with a procedural timber substrate
SootedConcreteSoot deposits over a stone-like substrate
HeatStainedSteelWarm discoloration over a metallic base
BurnEpicenterA localized radial effect centered on the object's bounds
LightSmokeLighter smoke staining
AshCrustPale char/ash appearance with shading relief
PatchyCharringBroken-up damage with exposed base material
CleanEffect disabled

Use with your material​

  1. Add MF_SurfaceScorch_Mask from SurfaceScorch/Materials/Functions.
  2. Connect mapping coordinates in centimeters to Position. The example master uses Absolute World Position minus Object Position. For a hotspot shared by several meshes, subtract the same world-space hotspot position instead.
  3. Connect a scalar or grayscale mask to AuthoredMask for local placement. White allows the effect; black excludes it.
  4. Add MF_SurfaceScorch_Apply, connecting your original Material Attributes to Base Material.
  5. Connect Char Mask, Soot Mask, Heat Mask and Char Detail to the matching Apply inputs. Set the colors, roughness and relief, then connect the resulting attributes to your material.

The Apply function layers heat discoloration, soot and char in that order. Setting Intensity = 0 zeros the masks and preserves the incoming material. You can use the separate masks in your own blends instead.

Controls​

ControlMeaning
IntensityOverall effect strength, 0–1
AuthoredMaskAdditional scalar or grayscale placement mask
Vertex Mask InfluenceIn the supplied master, 0 ignores vertex paint; 1 uses vertex color red
CoverageDistribution of affected areas
ProgressionArtistic damage progression, not elapsed physical time
ScaleProcedural pattern scale in centimeters
RotationRotation around mapping Z, in degrees
SeedPattern variation
LocalizedBlend from distributed damage to a radial hotspot
RadiusRadial hotspot size in centimeters
Soot / CharIndependent soot and char contributions
Char Color / Soot Color / Heat ColorLayer colors
Surface RoughnessChar-layer roughness; soot and heat use separate fixed roughness values
Relief StrengthChar shading relief without vertex displacement

The example master includes optional procedural substrate controls: Base Color, Base Roughness, Base Metallic, Base Scale, Base Grain and Base Relief. They are separate from the reusable functions.

Migration​

Migrate the entire SurfaceScorch Content folder into the destination project's Content directory. Keep the root folder name. No other Surface Tools package is required. Release content uses no runtime plugin; Python and Editor Scripting Utilities are authoring tools only and are disabled in the release project.

Scope and limits​

This is a visual surface treatment. It does not simulate flame, heat transfer, combustion, material loss, mesh destruction or ash particles. Heat discoloration is an artistic color layer; it is not a physically measured thin-film model.

The example hotspot is centered on each object's bounds. Supply shared coordinates to the mask function for a hotspot that crosses multiple objects. Coordinate scale and object placement affect the result. Very fine patterns can alias with distance. Profile the procedural shader cost in the destination scene; no universal performance claim is made.

The functions use pixel derivatives for filtering and relief. Do not connect their masks directly to World Position Offset. Apply preserves incoming vertex attributes, but animated geometry needs separate testing.

The development baseline is Unreal Engine 5.0.3 on Windows, DirectX 11, including native captures and a packaged demo launch. The same content archive also passed native loading and Windows cook in UE 5.8.2; rendering in 5.8.2 has not been inspected. Other versions, mobile, VR, translucent materials, landscape and animated geometry need separate testing. The examples use opaque Default Lit static meshes.

The example master measured 1603 pixel-shader instructions in UE 5.0.3 / SM5. It uses procedural math; profile your final material and target hardware. This measurement is not a frame-rate guarantee or a mobile performance claim.

Included content​

Two material functions, one example master, eight material instances, two demo materials, three demo meshes, two demo Blueprints and three maps. No texture maps are included. Epic BasicShapes are supporting example geometry under Demo.

Documentation image