From 085550da3356df0bc2204e02fc0a5b09caef1855 Mon Sep 17 00:00:00 2001 From: bjorn Date: Fri, 26 Aug 2022 10:34:32 -0700 Subject: [PATCH] Tonemapping, I guess; --- etc/shaders/lovr.glsl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/etc/shaders/lovr.glsl b/etc/shaders/lovr.glsl index 37a2d903..821d9204 100644 --- a/etc/shaders/lovr.glsl +++ b/etc/shaders/lovr.glsl @@ -15,6 +15,7 @@ layout(constant_id = 1012) const bool flag_metalnessTexture = true; layout(constant_id = 1013) const bool flag_roughnessTexture = true; layout(constant_id = 1014) const bool flag_occlusionTexture = false; layout(constant_id = 1015) const bool flag_clearcoatTexture = false; +layout(constant_id = 1016) const bool flag_tonemap = false; // Resources #ifndef GL_COMPUTE_SHADER @@ -317,6 +318,15 @@ vec3 evaluateSphericalHarmonics(vec3 sh[9], vec3 n) { sh[8] * (n.x * n.x - n.y * n.y) , 0.); } + +vec3 tonemap(vec3 x) { + float a = 2.51; + float b = 0.03; + float c = 2.43; + float d = 0.59; + float e = 0.14; + return (x * (a * x + b)) / (x * (c * x + d) + e); +} #endif // Entrypoints @@ -360,6 +370,10 @@ void main() { } } + if (flag_tonemap) { + PixelColor[0].rgb = tonemap(PixelColor[0].rgb); + } + if (flag_alphaCutoff && PixelColor[0].a <= Material.alphaCutoff) { discard; }