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

shield_dome_mat

Material for the energy-shield dome in the `fx_shield` scene. The `ShieldDome` entity at (110, 0, 150) draws `shield_dome_mesh` with it and carries the `ShieldFxDriver` component (radius 9, impact lights named `ImpactLight`). `ShieldFx.module` resolves the material by name in `M.…

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

shield_dome_mat

Material for the energy-shield dome in the fx_shield scene. The ShieldDome entity at (110, 0, 150) draws shield_dome_mesh with it and carries the ShieldFxDriver component (radius 9, impact lights named ImpactLight). ShieldFx.module resolves the material by name in M.start and writes its center once; every frame it writes the twelve hit slots and strain in one Material.setProperties call, the same values it writes to ground_arcs_mat.

Shader: shield_dome (shield_dome.shader). Its header: an energy shield dome whose hits arrive as 12 float4 material properties, with the hex lattice, ripples, flares, strain flicker and base arcs all evaluated per pixel. A conformal projection of the sphere onto a plane keeps the hex cells hexagonal. Each hit sends a ring and a hex-quantised wave across the dome and blooms at the impact point; the rim brightens with a fresnel term; strain makes cells strobe, the whole shield stutter and the colour drift toward magenta-white; back faces draw at 55% brightness. The vertex stage dents the surface at each impact and pushes a travelling swell outward from it.

Render state: blend: additive, cull: none, depth_write: false.

Properties

  • hex_scale: 12.0: density of the hex lattice on the projected dome (default 9, range 2 to 30); a larger value makes more, smaller cells.
  • tint (default (0.08, 0.55, 1.0, 1.0)): base glow colour.
  • hot (default (0.75, 0.95, 1.0, 1.0)): colour mixed in for arcs and hit heat.
  • center (default (0, 0, 0, 9)): xyz is the dome centre in world space and w the dome radius. ShieldFx writes the ShieldDome entity's position (110, 0, 150) and the driver's radius, 9.
  • strain (default 0, range 0 to 3): overload level; the shader divides it by 2.5 and clamps it to 1. ShieldFx raises it with every hit, more when the hit lands near recent ones, caps it at 3 and lets it decay over time.
  • hit0 to hit11 (default (0, 1, 0, -1)): one slot per recent hit. xyz is the unit direction of the hit from the dome centre times its strength, w its age in seconds; an age below 0 or above 3.5 leaves the slot idle.

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
descriptionAdditive energy-shield material (shield_dome shader) for the fx_shield dome: hex lattice, impact ripples and strain flicker driven by ShieldFx hits.

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
# shield_dome An energy-shield dome: a glowing hexagonal lattice over a hemisphere that ripples, dents and flares where shots land, crackles with arcs along its base, and flickers toward magenta-white as it is overloaded. Hits arrive as twelve float4 material properties, and everything (hex lattice, ripples, flares, strain flicker, base arcs) is evaluated per pixel each frame. The vertex stage moves each vertex along its direction from the centre: a dent of up to 0.16 times the hit's strength at the impact, decaying quickly, and a smaller swell that travels outward across the dome as the hit ages. The fragment stage projects the direction from the dome's centre onto a plane through `p.xz / (1 + p.y)`, a conformal projection that keeps the hex cells hexagonal, at `hex_scale` cells per unit. On that lattice it draws: - a faint cell fill that pulses per cell, and lattice edges brightened by a slow scan that drifts up the dome and by heat; - a fresnel rim; - for each live hit, a fine shock ring and a wave quantised to whole hex cells, both expanding outward with age, a bright bloom at the impact, and a lingering heat patch; - cells that strobe at 16 steps a second as heat rises; - jagged arcs hugging the ground and short bolts rising off it, gated more open by heat; - a whole-shield stutter at 27 steps a second and a shift toward magenta-white under strain. Back faces draw at 0.55 brightness. The alpha is 1; the material blends it additively. The `shield_dome_mat` material (additive, culling off, depth writes off, `hex_scale` 12) uses it on the `shield_dome_mesh` hemisphere in the `fx_shield` scene. The `ShieldFx` module, run by the `ShieldFxDriver` component, sets `center` once at start and writes the twelve hits and the strain every frame; `ground_arcs` reads the same table on the ground around it. ## Properties | Property | Type | Default | Meaning | |---|---|---|---| | `tint` | color | [0.08, 0.55, 1.0, 1.0] | Base energy colour of the cells, lattice and rim. | | `hot` | color | [0.75, 0.95, 1.0, 1.0] | Hot colour of the shock rings and impact blooms, mixed into the cell wave, strobes and base arcs. | | `center` | float4 | [0, 0, 0, 9] | xyz: world position of the dome's centre, which the fragment stage measures directions from. `ShieldFx` writes the dome's radius into w. | | `hex_scale` | float | 9.0 | Hex cells per unit of the projected plane (range 2 to 30). | | `strain` | float | 0.0 | Overload of the shield, range 0 to 3, read as `strain / 2.5` clamped to 1. | | `hit0` to `hit11` | float4 | [0, 1, 0, -1] | One recent hit each. xyz: unit direction from the dome's centre times the hit's strength; w: age in seconds. A negative age, or one above 3.5, marks the slot idle. | | `vertexBoundsDilation` | float | 2.5 | How far the vertex hook moves a vertex past the mesh, in world units: the culling bounds grow by it so a moved vertex is not culled. |
▲ 0↑ born
backing path · shield_dome_mat.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.