4
$\begingroup$
  • recently, I was using mesh planes to emit some light, and they had a strength of 8.0.. this worked well
  • now, I want to swap these out for area lamps (to improve performance)
  • i've positioned these area lamps in the place of my emitter polygons
  • i've scaled them such they have 1.0 transform scale, and in the lamp settings, I set the size to 1m across (to size-match the previous emitters)
  • the problem is, the lamps require a crazy "strength" of at least 1 000 000 (one million!) to produce any reasonable amount of light... this seems bonkers!
  • point lamps, area lamps, and the others, are all effected
  • my scene is scaled using the Centimeters preset.. the foreground is only a meter a way, and the more distant background is more like 5 meters back
  • i've paid special attention to the sizing and scaling of this scene, I can't figure out why the mesh emitters are working with a sane Strength of 8, and the lamps require something out of this world? something must not be right...

Edit: Remastered scene corrects scales, problem persists

stage sizing is corrected

stage-crazy-lamps-2.blend

  • i've remastered the scene so that all of the objects have a proper scale factor of 1.0
  • this should correct any sizing discrepancy/confusion
  • my scene must be in centimeters preset, all my other work is in centimeters
  • the area lamp size is now definitely 1m, as highlighted in the above screenshot (and it is not affected by the 1.0 transform scaling factor, also highlighted (I also verified the delta scale is also 1.0))
  • despite correcting the scaling of my scene, strength 1 000 000 is still required
  • is blender simply not accounting for my scene's Unit Scale setting?
$\endgroup$
  • $\begingroup$ Your scene is very large, it like trying to light a football stadium with a torch. For large scenes you must use a sun lamp. I found that at 1 metre with strength at 10 it lit the scene so that every object was visible. If you use an area lamp you will be forced to use values for both size and intensity. I can upload my results in the answer section if you like. $\endgroup$ – NBoss Dec 8 '17 at 2:15
  • $\begingroup$ @NickBosse — thank you for pointing out the scaling issue in my scene — I have now remastered the scene to correct the sizing altogether, however the issue still persists — please see my edits on the original question, as now the scene is correctly sized in the eyes of blender's ruler tool and other measurement systems — I am beginning to suspect this is a simple blender bug where the scale/strength of lamps is not correctly factoring the scene's Unit Scale setting, which is vitally important for my purposes $\endgroup$ – ChaseMoskal Dec 8 '17 at 3:09
4
$\begingroup$

Your area lamp is not 1m across, it is 100m in size, hence the strength required.

Your Blend file seems to have pretty messed up scaling factors, for starters your viewport has a clipping distance of 50µm which is causing all sorts of display precision issues and Z-Fighting.

Your whole scene is huge in reality, most objects are several meters high, have very high scaling factors, and your room is more than one kilometer long.

Most problems probably stem from the fact that your whole scene has a Units Scale factor of 0.01, which is giving you a false sense of scale, and falsely reported units value

Go to the Properties Window > Scene > Units > Units Scale and set the value to 1 enter image description here

$\endgroup$
  • 1
    $\begingroup$ Taking your suggestion, I've remastered my scene such that all of the object scaling is corrected. Unfortunately, this doesn't fix the problem. I must use a unit scale of 0.01 which is the blender preset for Centimeters, because all of my work is modeled in centimeters (it's rather small stuff). This shouldn't be an issue, as blender accounts for the scene's unit scale regarding measurements expressed in meters, etc — I have now edited my question, adding a screenshot highlighting the corrected scaling, demonstrating that the problem still exists $\endgroup$ – ChaseMoskal Dec 8 '17 at 2:59
  • $\begingroup$ I've also just now measured my corrected scene with blender's Ruler tool, verifying that blender reports the size of the area lamp to be 1m across (or 100 cm) — however the problem still persists as 1 million strength is needed $\endgroup$ – ChaseMoskal Dec 8 '17 at 3:05
  • 1
    $\begingroup$ Cycles Shaders don't take Unit Scaling into account, nor does scaling an object change the shader values, so if you use anything other than 1m and don't scale your scene properly so 1 Blender Unit = 1 m you will face this issue $\endgroup$ – Duarte Farrajota Ramos Dec 8 '17 at 3:39
  • $\begingroup$ scale your scene properly so 1 Blender Unit = 1 m — you are passive-aggressively suggesting that it is wrong to correctly use Blender's Unit Scale feature at all — this situation where "strength 1-million is required for a 1m lamp" should be rightly considered a bug in cycles shaders — cycles should be accounting for the blender-configured scale — if you really think this isn't a bug, and that I must redo my scene to the Meters unit scale preset, then you're arguing that any usage of Unit Scale is a mistake, and that the blender feature itself is not implemented correctly $\endgroup$ – ChaseMoskal Dec 8 '17 at 20:47
  • $\begingroup$ most importantly, every other blender feature respects Unit Scale, for example, the ruler tool — my scene is about 6 meters across and is lit by a 1 meter light — the strength should surely be consistent with these measurements, and have no bearing on the level of precision I am working with — a scene that measures consistently should render consistently — this is clearly a bug in cycles $\endgroup$ – ChaseMoskal Dec 8 '17 at 20:58
2
$\begingroup$

This is so wrong. While size does increase the area of which light can affect, it divides the amount of Emission value and spreads it across the lamp, so that each area will give an even amount of light. For example, Size 1 with Emission 1 will give the same amount of light as Size 100 and Emission 100, it will only affect a larger area. Therefore having the emission value higher than the size will make it give more light.

It is not a bug, it is just the lamp.

$\endgroup$
  • $\begingroup$ what should be the correct lamp strength to reasonably light a 6-meter wide scene, with a 1m area lamp? — I argue it certainly shouldn't be one million, and even more adamantly, I argue we must not consider my correct usage of blender's unit scale feature to be a mistake — blender should respect its own scale configuration in all cases, as it does with the ruler feature and every other feature — cylces should not be the sole exception to the blender scale configured for a scene, it's purely inconsistent $\endgroup$ – ChaseMoskal Dec 8 '17 at 20:51
  • $\begingroup$ if cycles is the only blender feature which ignores Unit Scale, then it's impossible for me to work with consistent Strength values in scenes where I'm working at different levels of precision — it surely cannot be right for a 10m scene to require a million times more strength than the exact same scene scaled at the exact same metric values — blender reports an identical measurement, and given the same strength value should render an identical scene $\endgroup$ – ChaseMoskal Dec 8 '17 at 20:53
  • $\begingroup$ i've found that a mesh emitter of identical size needs only a strength of 10 — this illustrates the bug only affects lamps within cycles $\endgroup$ – ChaseMoskal Dec 8 '17 at 21:07
2
$\begingroup$

Cycles lamps do not respect the scene's "Unit Scale" at this time

Bug report filed here (Blender 2.79)

Workarounds

  1. Use mesh emitters instead of lamps

    • mesh emission 'strength' correctly factors the scene's unit scale
    • you can position and size a polygon to match exactly an area lamp, and even set up some nodes to have it express light in only one direction (to better emulate the area lamp)
    • for point lights, you could use a small sphere to achieve a similar workaround
  2. Use "meters" unit scale for your scene

    • cycles lamp strength assumes you are using the "meters" unit scale, so if you are using that unit scale, the problem doesn't affect you
  3. Just roll with one million strength (correct for unit scale yourself)

    • create a node group which corrects the strength scaling for you, allowing you to input 10, and have it multiply that by 100 000 — if you have to change your scene's unit scaling (not common), you'd only have to manipulate the 100 000 coefficient in your node-group
$\endgroup$
  • 1
    $\begingroup$ Having high values in the emitter is not a problem at all, as long as you get the results you want. $\endgroup$ – cegaton Dec 8 '17 at 22:15
  • 1
    $\begingroup$ @cegaton — you're right, that's workaround #3 — the issue with the bug isn't that I can't get the results I want — it's that the results aren't consistent between scenes with different unit scales (despite the sizes being identical according to the measuring tool) — looking into this bug further, it appears blender has several features which don't account for unit scale properly, probably because the scene unit scale concept is one of the newer additions to blender — blender probably needs an internal audit for its own support of 'unit scale', for example, linked objects should be adjusted for $\endgroup$ – ChaseMoskal Dec 8 '17 at 22:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.