From 9bb36cdc52284aba5f056716aebdb373330ec9dc Mon Sep 17 00:00:00 2001
From: Greg <gregzzmail@gmail.com>
Date: Tue, 9 Aug 2016 11:35:29 +0200
Subject: [PATCH] Node Wrangler: Viewer node now compensates for film/CM
 exposure to avoid misleading the user

---
 node_wrangler.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/node_wrangler.py b/node_wrangler.py
index 36fa9e8a1..d289bc10f 100644
--- a/node_wrangler.py
+++ b/node_wrangler.py
@@ -1620,6 +1620,12 @@ class NWEmissionViewer(Operator, NWBase):
                             emission = emission_placeholder
                         make_links.append((active.outputs[out_i], emission.inputs[0]))
                         make_links.append((emission.outputs[0], materialout.inputs[0]))
+
+                        # Set brightness of viewer to compensate for Film and CM exposure
+                        intensity = 1/context.scene.cycles.film_exposure  # Film exposure is a multiplier
+                        intensity /= pow(2, (context.scene.view_settings.exposure))  # CM exposure is measured in stops/EVs (2^x)
+                        emission.inputs[1].default_value = intensity
+
                     else:
                         # Output type is 'SHADER', no Viewer needed. Delete Viewer if exists.
                         make_links.append((active.outputs[out_i], materialout.inputs[1 if active.outputs[out_i].name == "Volume" else 0]))
-- 
GitLab