Log inGet started
✦
shader · drop-in viewer
asset⌬ shadershaderprimary: shader.wgsl·originates fromworld 0fc7535e-6…

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`.

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

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

PropertyTypeDefaultMeaning
wetfloat0.95How soaked the ground is, 0 to 1: darkens the albedo, lowers roughness, deepens the puddles.
puddlesfloat1.0Amount of standing water, 0 to 1.
flashfloat0.0Current strike brightness (range 0 to 20).
bolt_posfloat4[0, 0, 0, 0]xyz: world position of the strike target; the reflection traces toward the column above its XZ.
fogfloat0.011Distance haze density (range 0 to 0.1).
center_xfloat0.0World X of the keep the dry apron surrounds.
center_zfloat0.0World Z of the keep the dry apron surrounds.

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 with churned earth, puddles, animated rain rings, distance haze and the lightning reflected in pools.

Sub-parts

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

5items
This part has no composite children. See the Files segment for its leaf payloads.
backing path · storm/shaders/storm_ground.shader

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.