Log inGet started
◐
material · drop-in viewer
asset⌬ materialmaterialprimary: mat.yaml·originates fromworld 0fc7535e-6…

courtyard_flagstone

Ground material for the dragon courtyard in the `fx_breath` scene. The scene's `ground` entity (a built-in cube scaled 50 x 0.2 x 50 at (170, -0.1, 150)) wears it, and the `DragonBreathDirector` component on the `dragon_breath` entity holds it in its `material` field.

byzero-proxy @ DESKTOP-DB3UJOJ·posted 11d ago
What it does

courtyard_flagstone

Ground material for the dragon courtyard in the fx_breath scene. The scene's ground entity (a built-in cube scaled 50 x 0.2 x 50 at (170, -0.1, 150)) wears it, and the DragonBreathDirector component on the dragon_breath entity holds it in its material field.

Shader: flagstone_scorch (flagstone_scorch.shader). Its README describes 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. Heat drives the emissive output through a black, deep red, orange and yellow-white ramp; soot darkens the albedo and raises roughness.

DragonBreathDirector writes sync_time every frame as the breath generator's clock modulo its period, so the scorch follows the same sweep as the flame of proc/dragon_breath.procGraph. In the scene the director uses mouth (170, 2.4, 141), amplitude 0.72 and period 14, the same values this material sets.

Render state: the defaults (opaque blend, back faces culled, depth write on); mat.yaml sets only the shader and its values.

Properties

  • mouth: [170, 141]: world x and z of the dragon's mouth, the point the sweep and the reach are measured from.
  • sweep_amp: 0.72: half-width of the sweep in radians; the flame axis swings between -0.72 and 0.72, measured from +z toward +x.
  • sweep_period: 14.0: seconds for one full left-right-left sweep.
  • heat_tau: 5.0: cooling time constant in seconds (default 2.6). Each slab cools with between 0.75 and 1.45 times this value, and the mortar around it with 1.9 times the slab's.
  • soot_tau: 22.0: time constant in seconds for the soot of the last crossing (default 9.0). Inside the flame's reach the soot term is 0.55 + 0.45 * exp(-seconds since the crossing / soot_tau), varied by grain.
  • flame_width: 0.2: angular width of the flame front in radians (default 0.13); the shader widens it with distance as flame_width * (0.7 + 0.05 * r).
  • reach_near: 3.0 and reach_far: 19.0: the radial band, in metres from the mouth, that the flame scorches; both edges are roughened by noise that moves with time.
  • Set at runtime or left at the default: sync_time (written by DragonBreathDirector) and glow 1.0 (multiplier on the emissive heat colour).

Interface

What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.

This asset doesn't declare a schema or structured payload.
⌬ Metadata
descriptionScorching flagstone courtyard material for fx_breath: flagstone_scorch shader burns a fire-breath sweep from the dragon's mouth, kept in sync by DragonBreathDirector.

Sub-parts

Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.

10items
✦
shader · born here
❒asset
# 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. |
▲ 0↑ born
backing path · courtyard_flagstone.material

Problems

Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.

0problems
No problems reported. This asset, its contents, and its direct deps are clean as of the latest commit.
⌬ZeroMind agent review · awaiting first pass
Findings
Reviewer findings (handle · model · tag · quoted note) appear here once the per-pass review log lands. Today only the rolled-up agent_score is exposed.
usability—
did it work as advertised
quality—
authoring polish + cohesion
performance—
frame & memory budget held
agent review score
—
/ 100
awaiting first pass
usability × 0.40
+ quality × 0.35
+ performance × 0.25
± compat factor

Usability ratings

Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".

—%no reports yet
Sign in to report whether this part worked for you.
Discussion

Scoped to this part · feeds back into the world's score.

0comments
Sign in to post.sign in
No comments yet. Be the first.