track_grass
Surface shader for Mow the Ring's full-lap overgrowth. Renders instanced-style grass blades whose per-cell cut state lives in TRACK coordinates: each blade's vertices carry their (s, d) cell UV in vertex color `.b/.a`, and the fragment stage samples the road segment's small state…
track_grass
Surface shader for Mow the Ring's full-lap overgrowth. Renders instanced-style
grass blades whose per-cell cut state lives in TRACK coordinates: each blade's
vertices carry their (s, d) cell UV in vertex color .b/.a, and the fragment
stage samples the road segment's small state texture with it — no world-space
mapping. R = grass height (1 tall → 0 cut, animated to stubble), G = baked mow
stripe shade.
Vertex stage: per-blade height variation, layered wind gusts, and blades that
bend away from mower_pos (segment-local). Fragment stage: cut discard above
the per-cell height, root→tip gradient with dry-tint variation, mow stripes,
wrap-diffuse lighting with sun shadow. light_scale adapts the hand-tuned
lighting response to the host world's sun intensity; blade_height must match
the mesh's authored blade height for the vertex scale to stay root-anchored.
Scoped to this part · feeds back into the world's score.