Page MenuHome

Cycles/Eevee: unify light strength and color.
ClosedPublic

Authored by Brecht Van Lommel (brecht) on Mar 25 2019, 5:22 PM.

Details

Summary

Cycles lights now use strength and color properties of the light outside
of the shading nodes, just like Eevee. The shading nodes then act as a
multiplier on this, and become optional unless textures, fallof or other
effects are desired.

Backwards compatibility is not exact, as we can't be sure which renderer
the .blend was designed for or even if it was designed for a single one.

If the render engine in the active scene is set to Cycles, lights are
converted to ensure overall light strength remains the same, and removing
unnecessary shader node setups that only included a single emission node.

If the engine is set to Eevee, we increase strength to remove the automatic
100x multiplier that was there to match Cycles.

I don't intend to commit this immediately, probably best to commit it
together with other settings unifications so we don't break things in
multiple steps.

Diff Detail

Repository
rB Blender

Event Timeline

Harbormaster completed remote builds in B3231: Diff 14404.
Brecht Van Lommel (brecht) planned changes to this revision.Mar 25 2019, 5:22 PM

Move implementation to C

This revision was not accepted when it landed; it landed in state Needs Review.May 13 2019, 4:33 PM
This revision was automatically updated to reflect the committed changes.
source/blender/draw/engines/eevee/eevee_lights.c
648

I made this change compared to the original patch, initially I forgot to update the automatic distance computation code which caused shadowing artifacts.

This does mean the results no longer match as well in the regression tests, since Eevee's automatic distance removes a fairly noticeable amount of light.