瀏覽代碼

added 'whitepoint' to ACES tonemapping

alex-2b17x4 7 年之前
父節點
當前提交
7fe75bb43b
共有 1 個文件被更改,包括 5 次插入4 次删除
  1. 5 4
      drivers/gles3/shaders/tonemap.glsl

+ 5 - 4
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