flagstone_scorch
Running-bond flagstone paving that scorches where a periodic fire-breath sweep has passed. The sweep is analytic (`axis = amp * sin(2*pi*t/period)` seen from `mouth`), so each stone works out when the flame last crossed it and how hot and sooty it is now: glowing orange in the jo…
flagstone_scorch
Running-bond flagstone paving that scorches where a periodic fire-breath sweep has passed. The sweep
is analytic (axis = amp * sin(2*pi*t/period) seen from mouth), so each stone works out when the
flame last crossed it and how hot and sooty it is now: glowing orange in the joints and veins first,
cooling through dull red to black soot. The scorch reads time only through sync_time, so the
pattern loops with the sweep. sync_time is written by DragonBreathDirector from the breath
graph's clock.
The paving is laid on the world XZ plane in rows 1.7 units deep, staggered on odd rows, with slabs
2.1 to 2.6 units wide. Each slab gets a grey between (0.42, 0.40, 0.38) and (0.62, 0.58, 0.54)
with a random green-grey tint, value-noise grain and blotches, and hairline cracks on some slabs;
the mortar is dark, and the normal tilts with the grain and at each slab's bevel.
For the scorch, each point's angle from mouth (measured from +Z toward +X) is compared with the
sweep axis. Points between reach_near and reach_far from the mouth, inside the sweep's angular
range, can burn; both distances and the sides are roughened by noise that churns with time. The
flame front is flame_width radians wide and widens with distance. Behind the front, heat decays
exponentially from the last crossing with a time constant of heat_tau (each slab 0.75 to 1.45
times that, the mortar 1.9 times its slab), concentrated in the vein network and the joints. The
emissive colour walks a ramp from black through deep red (0.55, 0.035, 0) and orange (2.6, 0.55, 0.04) to yellow-white (6.0, 2.6, 0.5), scaled by glow. Soot darkens the albedo toward 4.5
percent of its colour within the reach, strongest just after a crossing and settling to about half
that strength over soot_tau. Charred stone is rougher (up to 0.95) and hot stone glossier (toward
0.55).
The courtyard_flagstone material uses it with the mouth at (170, 141), amplitude 0.72, period 14
s, heat_tau 5, soot_tau 22, flame_width 0.2 and reach 3 to 19. In the fx_breath scene the
DragonBreathDirector component on the dragon_breath generator holds that material and sets its
sync_time to the graph time modulo the period every frame, so the stones scorch where the graph's
flame jet sweeps.
Properties
| Property | Type | Default | Meaning |
|---|---|---|---|
mouth | float2 | [0, -9] | World XZ of the dragon's mouth, the point the sweep turns about. |
sweep_amp | float | 0.72 | Half-width of the sweep in radians. |
sweep_period | float | 14.0 | Seconds for one full sweep. |
sync_time | float | 0.0 | Time into the sweep in seconds, written by DragonBreathDirector. |
reach_near | float | 3.5 | Distance from the mouth where the burnt band begins. |
reach_far | float | 17.0 | Distance from the mouth where the burnt band ends. |
flame_width | float | 0.13 | Angular half-width of the flame front in radians, scaled by 0.7 + 0.05 * distance. |
heat_tau | float | 2.6 | Cooling time constant in seconds. |
soot_tau | float | 9.0 | Time constant in seconds over which fresh soot settles to its lasting darkness. |
glow | float | 1.0 | Multiplies the emissive heat glow. |
Scoped to this part · feeds back into the world's score.