message: Stabilize the blur with an invertible tone-mapping
  This helps if some refracted objects have very strong highlights.
diff: @@ -46,8 +46,20 @@ vertex {
  }
  fragment {
  + vec3 Tonemap_ReinhardWeighted(const vec3 x, float weight) {
  + // Weighted Reinhard tone-mapping operator designed for post-processing
  + // This tone-mapping operator is invertible
  + return x * (weight / (max3(x) + 1.0));
  + }
  +
  + vec3 Tonemap_ReinhardWeighted_Invert(const vec3 x) {
  + // Inverse Reinhard tone-mapping operator, designed to be used in conjunction
  + // with the weighted Reinhard tone-mapping operator
  + return x / (1.0 - max3(x));
  + }
  void tap(inout vec3 sum, float weight, highp vec2 position) {
  - sum += weight * textureLod(materialParams_source, position, materialParams.level).rgb;
  + vec3 s = textureLod(materialParams_source, position, materialParams.level).rgb;
  + sum += Tonemap_ReinhardWeighted(s, weight);
  }
  void postProcess(inout PostProcessInputs postProcess) {
  @@ -65,6 +77,6 @@ fragment {
  tap(sum, k, uv - o);
  }
  - postProcess.color.rgb = sum;
  + postProcess.color.rgb = Tonemap_ReinhardWeighted_Invert(sum);
  }
  }
  