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

fx_streak_mat

Additive glow material for the incoming fire that hits the energy shield. `ShieldFx.module` resolves it by name in `M.start` and makes it the material of one of its GPU-instanced pools: a single draw whose instance transforms and lane data the module writes from Luau every frame.…

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

fx_streak_mat

Additive glow material for the incoming fire that hits the energy shield. ShieldFx.module resolves it by name in M.start and makes it the material of one of its GPU-instanced pools: a single draw whose instance transforms and lane data the module writes from Luau every frame. ShieldFxDriver on the ShieldDome entity in the fx_shield scene starts the effect and steps it each frame. This material's pool is "streak": up to 16 instances of a 6-sided tapered prism along +x with a pointed tail at x = 0 and a blunt head at x = 1, whose uv.x runs from tail to head. Each shot starts far out over the horizon, flies at 75 to 120 m/s toward a point on the dome, and is drawn as one streak 8 to 15 m long and 0.34 to 0.56 wide stretched from its tail to its head; lane 0 carries (0, 1, 0, 0).

Shader: fx_glow (fx_glow.shader). Its header describes one additive shader for every small emissive thing in the shield effect: form picks the look, and per-instance lane 0 carries (life 0..1, brightness, seed, 0). The forms are 0 tracer streak, 1 soft flare blob, 2 spark and 3 burning fragment. The output is the form's colour times brightness times gain, with alpha 1. For form 0, with a the uv.x along the streak, it returns (mix(color1, color2, a^5) * (0.12 + 2.4 * a^1.6) + color2 * a^5 * 4.5) times a soft edge term: color1 along the tail and color2 at the head.

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

Properties

  • form: 0: selects the tracer streak.
  • gain: 1.0: multiplier on the output.
  • color1: { r: 1.0, g: 0.32, b: 0.06, a: 1.0 }: tail colour.
  • color2: { r: 1.0, g: 0.85, b: 0.6, a: 1.0 }: head 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
descriptionAdditive fx_glow material (form 0, tracer) for the incoming fire streaks that ShieldFx flies at the shield dome in fx_shield.

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
# fx_glow One additive shader for every small emissive thing in the energy-shield effect. The material's `form` picks the look, and the per-instance lane 0 carries life, brightness and seed. It shades the 3D meshes the `ShieldFx` module builds: the brightness falls off with the angle between the surface normal and the view direction, so each mesh reads as a glowing volume with soft edges. The output colour is multiplied by the lane's brightness and the material's `gain`. - Form 0, tracer streak: along a tapered prism (`uv.x` 0 at the pointed tail, 1 at the blunt head) the colour runs from `color1` in the long fiery tail to a white-hot `color2` head. - Form 1, soft flare blob: a hot `color2` core inside a `color1` halo, fading with the square of the remaining life. - Form 2, spark: bright along the head of the prism, moving from `color2` while hot to `color1` as it cools, and fading with life. - Form 3, burning fragment: a faceted ember that cools from `color2` to dark red with a flicker whose rate comes from the seed, plus a faint `color1` glow. The `ShieldFx` module draws the effect with four materials made from it, all additive with culling off and depth writes off: `fx_streak_mat` (form 0, gain 1.0) on the incoming tracers, `fx_flare_mat` (form 1, gain 1.0) on the impact flares and the flashes where each tracer starts, `fx_spark_mat` (form 2, gain 1.8) on the sparks, and `fx_frag_mat` (form 3, gain 1.8) on the burning fragments. Each pool is one GPU-instanced draw whose lane 0 the module writes every frame: the tracer prism, a sphere for flares, the prism again for sparks, and an octahedron shard for fragments. The `ShieldFxDriver` component runs the module in the `fx_shield` scene. ## Properties | Property | Type | Default | Meaning | |---|---|---|---| | `form` | float | 0.0 | Look selector, range 0 to 4: below 0.5 tracer, below 1.5 flare, below 2.5 spark, otherwise burning fragment. | | `color1` | color | [1.0, 0.45, 0.1, 1.0] | The cooler colour: tracer tail, flare halo, cooled spark, fragment glow. | | `color2` | color | [1.0, 0.9, 0.7, 1.0] | The hot colour: tracer head, flare core, hot spark, hot fragment. | | `gain` | float | 1.0 | Multiplies the output colour (range 0 to 20). | ## Lanes | Lane | Carries | |---|---| | `data0.x` | Life, 0 to 1: fades the flare and cools the spark and fragment. | | `data0.y` | Brightness, multiplied into the output. | | `data0.z` | Seed: the fragment's flicker rate and phase. | | `data0.w` | 0. | `ShieldFx` writes (0, 1, 0, 0) for tracers, (age / life, 1, 0, 0) for flares and sparks, and (age / life, 1, seed, 0) for fragments.
▲ 0↑ born
backing path · fx_streak_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.