run method

  1. @override
Vector4? run(
  1. Float32List v,
  2. ShaderBindings bindings,
  3. FragmentContext c
)
override

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,
  );
}