diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2019-07-02 04:54:57 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2019-07-02 04:54:57 +0000 |
| commit | 0d7abc8bc8e95ce52e2d84e48b574d82ae4f8a3d (patch) | |
| tree | 8f9ce8bf2ea8ccf4d772d986cfd91ecf5b836e46 /Shaders/PostProcess | |
| parent | Updated readme: added License and Contributing sections (diff) | |
| download | DiligentFX-0d7abc8bc8e95ce52e2d84e48b574d82ae4f8a3d.tar.gz DiligentFX-0d7abc8bc8e95ce52e2d84e48b574d82ae4f8a3d.zip | |
ToneMapping: removed F3ONE and F3ZERO macros
Diffstat (limited to 'Shaders/PostProcess')
| -rw-r--r-- | Shaders/PostProcess/ToneMapping/public/ToneMapping.fxh | 28 |
1 files changed, 10 insertions, 18 deletions
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 } |
