summaryrefslogtreecommitdiffstats
path: root/Shaders/PostProcess
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-07-02 04:54:57 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-07-02 04:54:57 +0000
commit0d7abc8bc8e95ce52e2d84e48b574d82ae4f8a3d (patch)
tree8f9ce8bf2ea8ccf4d772d986cfd91ecf5b836e46 /Shaders/PostProcess
parentUpdated readme: added License and Contributing sections (diff)
downloadDiligentFX-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.fxh28
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
}