From 0d7abc8bc8e95ce52e2d84e48b574d82ae4f8a3d Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Mon, 1 Jul 2019 21:54:57 -0700 Subject: ToneMapping: removed F3ONE and F3ZERO macros --- .../PostProcess/ToneMapping/public/ToneMapping.fxh | 28 ++++++++-------------- 1 file changed, 10 insertions(+), 18 deletions(-) (limited to 'Shaders/PostProcess') diff --git a/Shaders/PostProcess/ToneMapping/public/ToneMapping.fxh b/Shaders/PostProcess/ToneMapping/public/ToneMapping.fxh index d24c810..685a200 100644 --- a/Shaders/PostProcess/ToneMapping/public/ToneMapping.fxh +++ b/Shaders/PostProcess/ToneMapping/public/ToneMapping.fxh @@ -4,14 +4,6 @@ # define RGB_TO_LUMINANCE float3(0.212671, 0.715160, 0.072169) #endif -#ifndef F3ZERO -# define F3ZERO float3(0.0, 0.0, 0.0) -#endif - -#ifndef F3ONE -# define F3ONE float3(1.0, 1.0, 1.0) -#endif - float3 Uncharted2Tonemap(float3 x) { // http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting @@ -32,7 +24,7 @@ float3 ToneMap(in float3 f3Color, ToneMappingAttribs Attribs, float fAveLogLum) // Compute scale factor such that average luminance maps to middle gray float fLumScale = middleGray / fAveLogLum; - f3Color = max(f3Color, F3ZERO); + f3Color = max(f3Color, float3(0.0, 0.0, 0.0)); float fInitialPixelLum = max(dot(RGB_TO_LUMINANCE, f3Color), 1e-10); float fScaledPixelLum = fInitialPixelLum * fLumScale; float3 f3ScaledColor = f3Color * fLumScale; @@ -42,7 +34,7 @@ float3 ToneMap(in float3 f3Color, ToneMappingAttribs Attribs, float fAveLogLum) #if TONE_MAPPING_MODE == TONE_MAPPING_MODE_EXP float fToneMappedLum = 1.0 - exp( -fScaledPixelLum ); - return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * F3ONE); + return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * float3(1.0, 1.0, 1.0)); #elif TONE_MAPPING_MODE == TONE_MAPPING_MODE_REINHARD || TONE_MAPPING_MODE == TONE_MAPPING_MODE_REINHARD_MOD @@ -56,30 +48,30 @@ float3 ToneMap(in float3 f3Color, ToneMappingAttribs Attribs, float fAveLogLum) # else float fToneMappedLum = L_xy * (1.0 + L_xy / (whitePoint*whitePoint)) / (1.0 + L_xy); # endif - return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * F3ONE); + return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * float3(1.0, 1.0, 1.0)); #elif TONE_MAPPING_MODE == TONE_MAPPING_MODE_UNCHARTED2 // http://filmicgames.com/archives/75 float ExposureBias = 2.0; float3 curr = Uncharted2Tonemap(ExposureBias*f3ScaledColor); - float3 whiteScale = F3ONE/Uncharted2Tonemap(whitePoint*F3ONE); + float3 whiteScale = float3(1.0, 1.0, 1.0) / Uncharted2Tonemap(float3(whitePoint, whitePoint, whitePoint)); return curr*whiteScale; #elif TONE_MAPPING_MODE == TONE_MAPPING_FILMIC_ALU // http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting - float3 f3ToneMappedColor = max(F3ZERO, f3ScaledColor - 0.004*F3ONE); - f3ToneMappedColor = (f3ToneMappedColor * (6.2 * f3ToneMappedColor + 0.5*F3ONE)) / - (f3ToneMappedColor * (6.2 * f3ToneMappedColor + 1.7*F3ONE)+ 0.06*F3ONE); + float3 f3ToneMappedColor = max(f3ScaledColor - float3(0.004, 0.004, 0.004), float3(0.0, 0.0, 0.0)); + f3ToneMappedColor = (f3ToneMappedColor * (6.2 * f3ToneMappedColor + float3(0.5, 0.5, 0.5))) / + (f3ToneMappedColor * (6.2 * f3ToneMappedColor + float3(1.7, 1.7, 1.7))+ float3(0.06, 0.06, 0.06)); // result has 1/2.2 gamma baked in - return pow(f3ToneMappedColor, 2.2 * F3ONE); + return pow(f3ToneMappedColor, float3(2.2, 2.2, 2.2)); #elif TONE_MAPPING_MODE == TONE_MAPPING_LOGARITHMIC // http://www.mpi-inf.mpg.de/resources/tmo/logmap/logmap.pdf float fToneMappedLum = log10(1.0 + fScaledPixelLum) / log10(1.0 + whitePoint); - return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * F3ONE); + return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * float3(1.0, 1.0, 1.0)); #elif TONE_MAPPING_MODE == TONE_MAPPING_ADAPTIVE_LOG @@ -88,7 +80,7 @@ float3 ToneMap(in float3 f3Color, ToneMappingAttribs Attribs, float fAveLogLum) float fToneMappedLum = 1.0 / log10(1.0 + whitePoint) * log(1.0 + fScaledPixelLum) / log( 2.0 + 8.0 * pow( fScaledPixelLum / whitePoint, log(Bias) / log(0.5)) ); - return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * F3ONE); + return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * float3(1.0, 1.0, 1.0)); #endif } -- cgit v1.2.3