[Bf-blender-cvs] [59989fd4e0b] blender2.8: Eevee: Volumetrics: Update/fix the lamp power convertion.

Clément Foucault noreply at git.blender.org
Thu Jan 18 22:43:23 CET 2018


Commit: 59989fd4e0b7a99b209d19a7ea880421f75b9977
Author: Clément Foucault
Date:   Thu Jan 18 21:52:16 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB59989fd4e0b7a99b209d19a7ea880421f75b9977

Eevee: Volumetrics: Update/fix the lamp power convertion.

Include a better fit for area lights.

===================================================================

M	source/blender/draw/engines/eevee/shaders/volumetric_lib.glsl

===================================================================

diff --git a/source/blender/draw/engines/eevee/shaders/volumetric_lib.glsl b/source/blender/draw/engines/eevee/shaders/volumetric_lib.glsl
index 1376c53d633..e12554bfabc 100644
--- a/source/blender/draw/engines/eevee/shaders/volumetric_lib.glsl
+++ b/source/blender/draw/engines/eevee/shaders/volumetric_lib.glsl
@@ -71,14 +71,17 @@ vec3 light_volume(LightData ld, vec4 l_vector)
 	/* TODO : Area lighting ? */
 	/* XXX : Removing Area Power. */
 	/* TODO : put this out of the shader. */
+	/* See eevee_light_setup(). */
 	if (ld.l_type == AREA) {
-		power = 0.0962 * (ld.l_sizex * ld.l_sizey * 4.0 * M_PI);
+		power = (ld.l_sizex * ld.l_sizey * 4.0 * M_PI) * (1.0 / 80.0);
+		power *= 20.0 * max(0.0, dot(-ld.l_forward, l_vector.xyz / l_vector.w)); /* XXX ad hoc, empirical */
 	}
 	else if (ld.l_type == SUN) {
-		power = 1.0;
+		power = (4.0f * ld.l_radius * ld.l_radius * M_2PI) * (1.0 / 12.5); /* Removing area light power*/
+		power *= M_2PI * 0.78; /* Matching cycles with point light. */
 	}
 	else {
-		power = 0.0248 * (4.0 * ld.l_radius * ld.l_radius * M_PI * M_PI);
+		power = (4.0 * ld.l_radius * ld.l_radius) * (1.0 /10.0);
 	}
 
 	/* OPTI: find a better way than calculating this on the fly */



More information about the Bf-blender-cvs mailing list