run method
Returns linear RGBA for attachment zero. Null discards the fragment.
Implementation
@override
Vector4? run(Float32List v, ShaderBindings bindings, FragmentContext c) {
final field = bindings.textures['field_texture'];
if (field == null) return Vector4.zero();
final params = bindings.vec4('FieldDecayInfo', 'params', Vector4.zero());
final s = field.sample(v[0], v[1]);
return Vector4(
s.x * params.x + params.y,
s.y * params.x + params.y,
s.z * params.x + params.y,
s.w * params.x + params.y,
);
}