Cycles lamp "strength" ignores scene's "unit scale", producing inconsistent renders in scenes with consistent scaling
Closed, InvalidPublic


System Information
Windows 7, GTX 580

Blender Version
Broken: 2.79 5bd8ac9
Worked: ---

Short description of error
Lamp emission 'strength' values are not correctly factoring the scene's Unit Scale, leading to inconsistent renders for scenes of the same dimensions (by the blender ruler).

In a blender scene configured for Centimeters unit scale, an area lamp of size 1 meter, requires 1 000 000 (one million) emission strength in order to reasonably light a 6m scene. A strength value of 10 is expected instead.

Mesh emitters are not affected by this bug — in the same "Centimeters" scene described above, a mesh emitter of the same 1 meter size needs only 10 emission strength.

If the scene is remastered to use Meters unit scale (such that the blender ruler still makes the same measurements) — the mesh emitter still works consistently with 10 strength, and the lamp then agrees is also happy with 10 strength — this illustrates the inconsistency between mesh-emitters and lamps with respect to unit scale.

Exact steps for others to reproduce the error


Brecht Van Lommel (brecht) claimed this task.

Lamps are in Watts, the size of the lamp intentionally does not affect the intensity, only the softness of the shadows. Mesh lights are in Watts/m^2 and are affected by the mesh scale.

In the future we may add some options to controls this behavior, but it's not a bug.

@Brecht Van Lommel (brecht) adding this information in the tooltip or as a unit like for the distance values would clarify such discrepancies.

@Brecht Van Lommel (brecht) When I change my units to cm, the light from a point lamp becomes dim in the render. Why is that?

Changing unit settings in the render does affect the render, unless perhaps you are using an addon or importer that takes them into account. It only affects the display and editing of values in the UI.

@Brecht Van Lommel (brecht) After I change units, I expect that I could re-add the default scene objects and that the render would be the same as the unchanged default scene. That isn't what happens. The most noticeable difference is that the Point Lamp strength has to be increased a lot; I would expect it's strength to be scaled to match it's larger size.

Things (I've found) that don't automatically scale to match the default blender-units scene when I set units to Centimeters:

  • a Point Lamp's strength
  • the View Clip distance. Before the unit change, it is 0.1 to 1000 (blender units). After the unit change it becomes 1mm to 10m. That doesn't match 1 blender unit = 1 meter.

If I'm not understanding something about why these things behave this way, could you point me at some documentation or blog posts about how this works in Blender. I can't find anything definitive about this and it seems really common to immediately change a project to Centimeters. I'm hoping for a more self-consistent experience with Blender. Thanks!