diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-04-03 12:04:42 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-04-03 22:52:03 +0300 |
commit | 46cd87f5da6338577581055c6b0f453e29c7bc49 (patch) | |
tree | ff33f1b97f36ce15d4c3f60c3ce4738209566292 /source/blender/draw/engines/eevee/eevee_lights.c | |
parent | a78e97b206b188f3da050888fa8c61b0f237902a (diff) |
Eevee: LTC area lights
Using Linear Transform Cosines to compute area lighting. This is far more accurate than other techniques but also slower.
We use rotating quad to mimic sphere area light. For a better approximation, we use a rotating octogon.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_lights.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_lights.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_lights.c b/source/blender/draw/engines/eevee/eevee_lights.c index 9d2523ada6b..6a6947bdc3f 100644 --- a/source/blender/draw/engines/eevee/eevee_lights.c +++ b/source/blender/draw/engines/eevee/eevee_lights.c @@ -133,17 +133,17 @@ void EEVEE_lights_update(EEVEE_StorageList *stl) } } else { - evli->sizex = MAX2(0.0001f, la->area_size); + evli->sizex = MAX2(0.001f, la->area_size); } /* Make illumination power constant */ if (la->type == LA_AREA) { power = 1.0f / (evli->sizex * evli->sizey * 4.0f * M_PI) /* 1/(w*h*Pi) */ - * M_PI * 10.0f; /* XXX : Empirical, Fit cycles power */ + * 80.0f; /* XXX : Empirical, Fit cycles power */ } else if (la->type == LA_SPOT || la->type == LA_LOCAL) { power = 1.0f / (4.0f * evli->sizex * evli->sizex * M_PI * M_PI) /* 1/(4*r²*Pi²) */ - * M_PI * 100.0; /* XXX : Empirical, Fit cycles power */ + * M_PI * M_PI * M_PI * 10.0; /* XXX : Empirical, Fit cycles power */ /* for point lights (a.k.a radius == 0.0) */ // power = M_PI * M_PI * 0.78; /* XXX : Empirical, Fit cycles power */ |