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

fx_spark_mat

Additive glow material for the sparks of the energy-shield effect. `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. `Shiel…

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

fx_spark_mat

Additive glow material for the sparks of the energy-shield effect. 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 "spark": up to 260 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 spark is stretched along its velocity (length 0.08 + 0.028 x speed, at most 0.75, width 0.075). Every impact sprays 22 or more sparks that live 0.55 to 1.85 s, and each incoming streak sheds shorter-lived sparks (0.25 to 0.6 s) from its head while in flight; lane 0 carries (age / life, 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 2 the heat is 1 - life; the colour is mix(color1, color2, heat^2), brighter toward the head of the streak and fading out with the heat.

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

Properties

  • form: 2: selects the spark.
  • gain: 1.8: multiplier on the output.
  • color1: { r: 1.0, g: 0.35, b: 0.05, a: 1.0 }: colour of an aged spark.
  • color2: { r: 1.0, g: 0.95, b: 0.7, a: 1.0 }: colour of a new spark.

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 2, spark) for the velocity-stretched sparks ShieldFx sprays from shield impacts and streak trails 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_spark_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.