From 7fe75bb43ba6dcf2e2b8d3e8626e8a99e42c2b77 Mon Sep 17 00:00:00 2001 From: alex-2b17x4 <3957610+CptPotato@users.noreply.github.com> Date: Wed, 11 Jul 2018 15:59:14 +0200 Subject: [PATCH] added 'whitepoint' to ACES tonemapping --- drivers/gles3/shaders/tonemap.glsl | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/gles3/shaders/tonemap.glsl b/drivers/gles3/shaders/tonemap.glsl index a75871f08e9..ceb37d703a2 100644 --- a/drivers/gles3/shaders/tonemap.glsl +++ b/drivers/gles3/shaders/tonemap.glsl @@ -161,13 +161,14 @@ vec3 tonemap_filmic(vec3 color,float white) { } -vec3 tonemap_aces(vec3 color) { +vec3 tonemap_aces(vec3 color, float white) { float a = 2.51f; float b = 0.03f; float c = 2.43f; float d = 0.59f; float e = 0.14f; - return color = clamp((color*(a*color+b))/(color*(c*color+d)+e),vec3(0.0),vec3(1.0)); + color = (color * (a * color + b)) / (color * (c * color + d) + e); + return clamp(color / vec3((white * (a * white + b)) / (white * (c * white + d) + e)), vec3(0.0), vec3(1.0)); } vec3 tonemap_reindhart(vec3 color,float white) { @@ -250,10 +251,10 @@ void main() { #ifdef USE_ACES_TONEMAPPER - color.rgb = tonemap_aces(color.rgb); + color.rgb = tonemap_aces(color.rgb,white); # if defined(USING_GLOW) - glow = tonemap_aces(glow); + glow = tonemap_aces(glow,white); # endif #endif