obs-filters: Fix color key distance
Was incorrectly computing distance between linear color and nonlinear key. Make color nonlinear to match previous behavior.
This commit is contained in:
parent
fa3d87b770
commit
9e092bf28e
@ -34,9 +34,19 @@ float4 CalcColor(float4 rgba)
|
||||
return float4(pow(rgba.rgb, float3(gamma, gamma, gamma)) * contrast + brightness, rgba.a);
|
||||
}
|
||||
|
||||
float GetNonlinearChannel(float u)
|
||||
{
|
||||
return (u <= 0.0031308) ? (12.92 * u) : ((1.055 * pow(u, 1.0 / 2.4)) - 0.055);
|
||||
}
|
||||
|
||||
float3 GetNonlinearColor(float3 rgb)
|
||||
{
|
||||
return float3(GetNonlinearChannel(rgb.r), GetNonlinearChannel(rgb.g), GetNonlinearChannel(rgb.b));
|
||||
}
|
||||
|
||||
float GetColorDist(float3 rgb)
|
||||
{
|
||||
return distance(key_color.rgb, rgb);
|
||||
return distance(key_color.rgb, GetNonlinearColor(rgb));
|
||||
}
|
||||
|
||||
float4 ProcessColorKey(float4 rgba, VertData v_in)
|
||||
|
Loading…
x
Reference in New Issue
Block a user