Picking fragment shader for lines.
Outputs vec4(nodeId, elementId-low16, brightness, elementId-high16) with brightness-as-depth.
Lines use FULL width for picking (same as visual) — unlike points/splats,
lines are already narrow with a sharp parabolic profile. Tighter truncation
would make thin lines nearly impossible to pick. The brightness-weighted
voting handles overlap correctly (centerline brightness always wins).
Cap factor is computed in fragment to match the visual shader.
Picking fragment shader for lines. Outputs vec4(nodeId, elementId-low16, brightness, elementId-high16) with brightness-as-depth.
Lines use FULL width for picking (same as visual) — unlike points/splats, lines are already narrow with a sharp parabolic profile. Tighter truncation would make thin lines nearly impossible to pick. The brightness-weighted voting handles overlap correctly (centerline brightness always wins).
Cap factor is computed in fragment to match the visual shader.