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

storm_ground

Ground material for the lightning storm scene `fx_storm`. The scene's `ground` entity (a built-in cube scaled 90 x 0.2 x 90 at (-100, -0.1, 220)) wears it. The `StormDirector` component on the `storm` entity resolves it by name and, on each frame where the strike light changes, w…

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

storm_ground

Ground material for the lightning storm scene fx_storm. The scene's ground entity (a built-in cube scaled 90 x 0.2 x 90 at (-100, -0.1, 220)) wears it. The StormDirector component on the storm entity resolves it by name and, on each frame where the strike light changes, writes flash and bolt_pos for the strongest current strike.

Shader: storm_ground (storm/shaders/storm_ground.shader). Its README: sodden ground, with churned earth, rock, puddles with animated rain rings, and the lightning bolt's reflection in the pools. From its header: world-space and texture-free; puddles fill the hollows of a procedural height field and mirror the sky, rain rings spread on every wet patch, the strike's reflection is traced from the reflected view ray to the bolt's column, and a distance haze matched to the sky's horizon blends the far ground away.

Render state: the defaults (opaque blend, back faces culled, depth write on).

Properties

mat.yaml sets center_x and center_z, every other property takes the shader default, and the director writes two of them at runtime:

  • wet 0.95: darkens the albedo, lowers roughness and fills more of the hollows with water.
  • puddles 1.0: multiplier on puddle coverage.
  • flash 0.0 (range 0 to 20): strike brightness, written by StormDirector; it scales the bolt's reflection in the pools and brightens the distance haze.
  • bolt_pos (0, 0, 0, 0): position of the strike's target, written by StormDirector; the shader uses its x and z as the bolt's column.
  • fog 0.011: density of the distance haze, applied as 1 - exp(-distance * fog).
  • center_x -100, center_z 220: where the keep stands; the ground within 9 units of it stays a drier apron and the puddles fill in from 9 to 16 units out.

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
descriptionSodden storm ground material (storm_ground shader) for fx_storm: earth, rock and rain-ringed puddles that reflect each lightning strike, driven by StormDirector.

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
# storm_ground Surface shader for sodden ground: churned earth, rock, puddles with animated rain rings, and the lightning bolt's reflection in the pools (`flash`, `bolt_pos`). Everything is computed from the world XZ position in a `surface()` function that fills a `PbrSurface`. A height field of PCG-hashed value-noise fBm gives the relief and its normal, which flattens out between 40 and 160 units from the camera. Puddles fill the low ground, clustered by a broad noise, scaled by `wet` and `puddles`; they fade in across a square band 9 to 16 units out from (`center_x`, `center_z`), leaving drier ground around the keep standing there. Two layers of rain rings (cells 0.55 and 0.83 wide, 1.15 and 0.85 drops per cell per second) bend the normal on every wet patch, most strongly in the pools. The albedo mixes dark earth, grey rock patches and dead grass, is darkened by `wet`, and goes near-black in the pools; roughness runs from 0.72 dry to 0.30 wet and 0.03 in the pools, and reflectance is 0.55. The strike's reflection traces the reflected view ray toward the vertical column above `bolt_pos` and adds a blue-white streak `(0.55, 0.66, 1.0)` in the pools, scaled by a fresnel term and by `flash`. Distance haze `1 - exp(-distance * fog)` fades the ground into the colour `(0.052, 0.066, 0.092)`, the same haze colour `storm_sky` puts on its horizon, brightened slightly by the flash. The `storm_ground` material (`storm/materials/storm_ground.material`) sets (`center_x`, `center_z`) to (-100, 220), where the keep stands, and keeps the defaults for the rest; the `fx_storm` scene's ground draws with it. The `StormDirector` component writes the material's `flash` and `bolt_pos` whenever the strike lighting changes. ## Properties | Property | Type | Default | Meaning | |---|---|---|---| | `wet` | float | 0.95 | How soaked the ground is, 0 to 1: darkens the albedo, lowers roughness, deepens the puddles. | | `puddles` | float | 1.0 | Amount of standing water, 0 to 1. | | `flash` | float | 0.0 | Current strike brightness (range 0 to 20). | | `bolt_pos` | float4 | [0, 0, 0, 0] | xyz: world position of the strike target; the reflection traces toward the column above its XZ. | | `fog` | float | 0.011 | Distance haze density (range 0 to 0.1). | | `center_x` | float | 0.0 | World X of the keep the dry apron surrounds. | | `center_z` | float | 0.0 | World Z of the keep the dry apron surrounds. |
▲ 0↑ born
backing path · storm/materials/storm_ground.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.