combat_glow
The one additive look the combat effect family draws with. Four forms live in this shader and the entity's instance-data lanes choose between them, so a muzzle flash, a tracer, a plasma bolt, an impact flash and a shockwave ring on screen at the same time are five instances of one material.
| Form | Drawn on | Shape lane |
|---|---|---|
| 0 bloom | a sphere | raggedness, edge falloff |
| 1 ring | a plane | radius 0..1, thickness 0..1, ripple |
| 2 streak | a rod along the flight path | head 0..1, tail 0..1, head sharpness |
| 3 bolt | the same rod | head 0..1, core half-length 0..1, trail 0..1, pulse |
Lanes
| Lane | Contents |
|---|---|
| 0 | form, age 0..1, energy, seed |
| 1 | tint rgb, emissive gain |
| 2 | the four scalars the chosen form reads |
energy is the signal that a play has written the lanes. At zero the material's
own tint, intensity and form stand in, which is what makes the material
legible when it is dropped onto a mesh by hand.
What it computes
Everything: ridged fBm carves the bloom's silhouette, value noise wobbles the
ring's circumference, and the streak and the bolt are gradients along the rod's
own UV. fx_noise and fx_shaping supply the maths.
The shader declares no texture slot and no storage buffer, so an effect drawing through it adds nothing to a frame's bind budget.
Scoped to this part · feeds back into the world's score.