Merge branch 'blender-v4.2-release'
This commit is contained in:
@@ -2,13 +2,16 @@
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma BLENDER_REQUIRE(gpu_shader_common_math_utils.glsl)
|
||||
|
||||
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);
|
||||
float difference = dot(abs(color - key).rgb, vec3(1.0)) / 3.0;
|
||||
|
||||
bool is_opaque = difference > tolerance + falloff;
|
||||
float alpha = is_opaque ? color.a : safe_divide(max(0.0, difference - tolerance), falloff);
|
||||
|
||||
matte = min(alpha, color.a);
|
||||
result = color * matte;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user