summaryrefslogtreecommitdiffstats
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
parentUpdated readme: added License and Contributing sections (diff)
downloadDiligentFX-0d7abc8bc8e95ce52e2d84e48b574d82ae4f8a3d.tar.gz
DiligentFX-0d7abc8bc8e95ce52e2d84e48b574d82ae4f8a3d.zip
ToneMapping: removed F3ONE and F3ZERO macros
-rw-r--r--Shaders/PostProcess/ToneMapping/public/ToneMapping.fxh28
-rw-r--r--shaders_inc/ToneMapping.fxh.h28
2 files changed, 20 insertions, 36 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
}
diff --git a/shaders_inc/ToneMapping.fxh.h b/shaders_inc/ToneMapping.fxh.h
index 418f8a8..66d8db2 100644
--- a/shaders_inc/ToneMapping.fxh.h
+++ b/shaders_inc/ToneMapping.fxh.h
@@ -4,14 +4,6 @@
"# define RGB_TO_LUMINANCE float3(0.212671, 0.715160, 0.072169)\n"
"#endif\n"
"\n"
-"#ifndef F3ZERO\n"
-"# define F3ZERO float3(0.0, 0.0, 0.0)\n"
-"#endif\n"
-"\n"
-"#ifndef F3ONE\n"
-"# define F3ONE float3(1.0, 1.0, 1.0)\n"
-"#endif\n"
-"\n"
"float3 Uncharted2Tonemap(float3 x)\n"
"{\n"
" // http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting\n"
@@ -32,7 +24,7 @@
" // Compute scale factor such that average luminance maps to middle gray\n"
" float fLumScale = middleGray / fAveLogLum;\n"
" \n"
-" f3Color = max(f3Color, F3ZERO);\n"
+" f3Color = max(f3Color, float3(0.0, 0.0, 0.0));\n"
" float fInitialPixelLum = max(dot(RGB_TO_LUMINANCE, f3Color), 1e-10);\n"
" float fScaledPixelLum = fInitialPixelLum * fLumScale;\n"
" float3 f3ScaledColor = f3Color * fLumScale;\n"
@@ -42,7 +34,7 @@
"#if TONE_MAPPING_MODE == TONE_MAPPING_MODE_EXP\n"
" \n"
" float fToneMappedLum = 1.0 - exp( -fScaledPixelLum );\n"
-" return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * F3ONE);\n"
+" return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * float3(1.0, 1.0, 1.0));\n"
"\n"
"#elif TONE_MAPPING_MODE == TONE_MAPPING_MODE_REINHARD || TONE_MAPPING_MODE == TONE_MAPPING_MODE_REINHARD_MOD\n"
"\n"
@@ -56,30 +48,30 @@
"# else\n"
" float fToneMappedLum = L_xy * (1.0 + L_xy / (whitePoint*whitePoint)) / (1.0 + L_xy);\n"
"# endif\n"
-" return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * F3ONE);\n"
+" return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * float3(1.0, 1.0, 1.0));\n"
"\n"
"#elif TONE_MAPPING_MODE == TONE_MAPPING_MODE_UNCHARTED2\n"
"\n"
" // http://filmicgames.com/archives/75\n"
" float ExposureBias = 2.0;\n"
" float3 curr = Uncharted2Tonemap(ExposureBias*f3ScaledColor);\n"
-" float3 whiteScale = F3ONE/Uncharted2Tonemap(whitePoint*F3ONE);\n"
+" float3 whiteScale = float3(1.0, 1.0, 1.0) / Uncharted2Tonemap(float3(whitePoint, whitePoint, whitePoint));\n"
" return curr*whiteScale;\n"
"\n"
"#elif TONE_MAPPING_MODE == TONE_MAPPING_FILMIC_ALU\n"
"\n"
" // http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting\n"
-" float3 f3ToneMappedColor = max(F3ZERO, f3ScaledColor - 0.004*F3ONE);\n"
-" f3ToneMappedColor = (f3ToneMappedColor * (6.2 * f3ToneMappedColor + 0.5*F3ONE)) / \n"
-" (f3ToneMappedColor * (6.2 * f3ToneMappedColor + 1.7*F3ONE)+ 0.06*F3ONE);\n"
+" float3 f3ToneMappedColor = max(f3ScaledColor - float3(0.004, 0.004, 0.004), float3(0.0, 0.0, 0.0));\n"
+" f3ToneMappedColor = (f3ToneMappedColor * (6.2 * f3ToneMappedColor + float3(0.5, 0.5, 0.5))) / \n"
+" (f3ToneMappedColor * (6.2 * f3ToneMappedColor + float3(1.7, 1.7, 1.7))+ float3(0.06, 0.06, 0.06));\n"
" // result has 1/2.2 gamma baked in\n"
-" return pow(f3ToneMappedColor, 2.2 * F3ONE);\n"
+" return pow(f3ToneMappedColor, float3(2.2, 2.2, 2.2));\n"
"\n"
"#elif TONE_MAPPING_MODE == TONE_MAPPING_LOGARITHMIC\n"
" \n"
" // http://www.mpi-inf.mpg.de/resources/tmo/logmap/logmap.pdf\n"
" float fToneMappedLum = log10(1.0 + fScaledPixelLum) / log10(1.0 + whitePoint);\n"
-" return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * F3ONE);\n"
+" return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * float3(1.0, 1.0, 1.0));\n"
"\n"
"#elif TONE_MAPPING_MODE == TONE_MAPPING_ADAPTIVE_LOG\n"
"\n"
@@ -88,7 +80,7 @@
" float fToneMappedLum = \n"
" 1.0 / log10(1.0 + whitePoint) *\n"
" log(1.0 + fScaledPixelLum) / log( 2.0 + 8.0 * pow( fScaledPixelLum / whitePoint, log(Bias) / log(0.5)) );\n"
-" return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * F3ONE);\n"
+" return fToneMappedLum * pow(f3Color / fInitialPixelLum, Attribs.fLuminanceSaturation * float3(1.0, 1.0, 1.0));\n"
"\n"
"#endif\n"
"}\n"