nitro-orchard-1.21.11.jar

Download file
#version 150

in vec2 texCoord;

out vec4 fragColor;

uniform sampler2D BeforeSampler;
uniform sampler2D AfterSampler;
uniform sampler2D DepthBeforeSampler;
uniform sampler2D DepthAfterSampler;

layout(std140) uniform MaskData {
    vec4 params;
};

void main() {
    float depthBefore = texture(DepthBeforeSampler, texCoord).r;
    float depthAfter = texture(DepthAfterSampler, texCoord).r;
    float depthDiff = depthBefore - depthAfter;
    bool isHand = depthDiff > 0.0001;

    if (!isHand) {
        vec4 before = texture(BeforeSampler, texCoord);
        vec4 after = texture(AfterSampler, texCoord);
        vec3 colorDiff = abs(after.rgb - before.rgb);
        float maxColorDiff = max(max(colorDiff.r, colorDiff.g), colorDiff.b);
        isHand = maxColorDiff > 0.01;
    }

    float result = isHand ? 1.0 : 0.0;
    fragColor = vec4(result, result, result, 1.0);
}
Download file