From b460f025ede794e413293ebbb820c49350c24ce9 Mon Sep 17 00:00:00 2001 From: jpark37 Date: Fri, 22 Jan 2021 22:20:48 -0800 Subject: [PATCH] obs-filters: Fix pow arguments GLSL does not auto-promote float to vector where HLSL does. --- plugins/obs-filters/data/chroma_key_filter_v2.effect | 2 +- plugins/obs-filters/data/color_correction_filter.effect | 2 +- plugins/obs-filters/data/color_key_filter_v2.effect | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/obs-filters/data/chroma_key_filter_v2.effect b/plugins/obs-filters/data/chroma_key_filter_v2.effect index dd0439684..702ad600f 100644 --- a/plugins/obs-filters/data/chroma_key_filter_v2.effect +++ b/plugins/obs-filters/data/chroma_key_filter_v2.effect @@ -36,7 +36,7 @@ VertData VSDefault(VertData v_in) float4 CalcColor(float4 rgba) { - return float4(pow(rgba.rgb, gamma) * contrast + brightness, rgba.a); + return float4(pow(rgba.rgb, float3(gamma, gamma, gamma)) * contrast + brightness, rgba.a); } float GetChromaDist(float3 rgb) diff --git a/plugins/obs-filters/data/color_correction_filter.effect b/plugins/obs-filters/data/color_correction_filter.effect index d1f65a7a0..1470c01ba 100644 --- a/plugins/obs-filters/data/color_correction_filter.effect +++ b/plugins/obs-filters/data/color_correction_filter.effect @@ -49,7 +49,7 @@ float4 PSColorFilterRGBA(VertData vert_in) : TARGET float4 currentPixel = image.Sample(textureSampler, vert_in.uv); /* Always address the gamma first. */ - currentPixel.rgb = pow(currentPixel.rgb, gamma); + currentPixel.rgb = pow(currentPixel.rgb, float3(gamma, gamma, gamma)); /* Much easier to manipulate pixels for these types of operations * when in a matrix such as the below. See diff --git a/plugins/obs-filters/data/color_key_filter_v2.effect b/plugins/obs-filters/data/color_key_filter_v2.effect index df6e155aa..2bb789962 100644 --- a/plugins/obs-filters/data/color_key_filter_v2.effect +++ b/plugins/obs-filters/data/color_key_filter_v2.effect @@ -31,7 +31,7 @@ VertData VSDefault(VertData v_in) float4 CalcColor(float4 rgba) { - return float4(pow(rgba.rgb, gamma) * contrast + brightness, rgba.a); + return float4(pow(rgba.rgb, float3(gamma, gamma, gamma)) * contrast + brightness, rgba.a); } float GetColorDist(float3 rgb) -- GitLab