Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gpu_shader_compositor_difference_matte.glsl « library « compositor « shaders « gpu « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: d769cadce3cc75c63ce7f31f7a8f2c238c622351 (plain)
1
2
3
4
5
6
7
8
9
10
void node_composite_difference_matte(
    vec4 color, vec4 key, float tolerance, float falloff, out vec4 result, out float matte)
{
  vec4 difference = abs(color - key);
  float average_difference = (difference.r + difference.g + difference.b) / 3.0;
  bool is_opaque = average_difference > tolerance + falloff;
  float alpha = is_opaque ? color.a : (max(0.0, average_difference - tolerance) / falloff);
  matte = min(alpha, color.a);
  result = color * matte;
}