rift_mote_cluster
Draws a cluster of glowing motes per element. The mesh carries degenerate quads (all four corners at one point, told apart by their UV) on a unit sphere; the vertex stage orbits each around its own axis and expands it to a camera-facing sprite. The element's scale sets how far th…
rift_mote_cluster
Draws a cluster of glowing motes per element. The mesh carries degenerate quads (all four corners at
one point, told apart by their UV) on a unit sphere; the vertex stage orbits each around its own
axis and expands it to a camera-facing sprite. The element's scale sets how far the cluster spreads,
so a simulated swarm of a thousand leaders draws as thousands of motes for the cost of a thousand
renderables. Lane 0 is the HDR colour and opacity; size is the sprite size in metres.
In vertex_clip each sub-mote takes a stable id from where it sits in the cluster mesh and hashes
it into three values. It circles a per-mote axis at 0.35 to 1.25 radians per second, at a radius
that breathes between 0.2 and 1.0 of its rest position, is placed through the element's origin, axes
and scale, and is expanded into a sprite size times 0.55 to 1.45 across. The three hashes pass to
the fragment as the vertex colour. The fragment draws a core and halo that twinkle at a per-mote
rate of 1.5 to 7.5 radians per second, leans each sub-mote's hue between a cool (0.75, 0.85, 1.25)
and a warm (1.25, 0.8, 1.0) tint of the cluster's colour, and whitens the core. It returns the
colour times its coverage times gain, with the coverage as alpha.
The arcane_rift graph (rift/arcane_rift.procGraph) draws its motes output with it through
moteMat (additive, culling off, depth writes off, size 0.055, gain wired to the graph's
intensity input). The 900 leaders come from the rift_motes solver; each draws a cluster mesh of
eight zero-size quads placed on a sphere shell, at a random spread of 0.6 to 1.0, coloured from a
blue-violet-pink ramp by a random hue. In the Procgen Effects Showcase world, the fx_rift scene plays the graph.
The shader includes rift_noise with #include "rift_noise".
Properties
| Property | Type | Default | Meaning |
|---|---|---|---|
gain | float | 1.0 | Multiplies the output colour (range 0 to 50). |
size | float | 0.06 | Sprite size of each sub-mote in metres, before its 0.55 to 1.45 variation (range 0 to 1). |
vertexBoundsDilation | float | 2.1 | How far the vertex hook moves a vertex past the mesh, in world units: the culling bounds grow by it so a moved vertex stays inside them. |
Lanes
| Lane | Carries |
|---|---|
data0.rgb | HDR colour of the cluster. |
data0.a | Opacity. |
Scoped to this part · feeds back into the world's score.