Photographer - Camera Exposure, White balance, Autofocus and Physical Lights


I am releasing my first addon for Blender: Photographer! What does it do?

  • Adds Camera Exposure controls and Auto Exposure, per camera
  • Adds Camera White Balance, per camera
  • Adds Render resolution and Ratio presets, per camera
  • More user friendly Lens Tilt and Automatic Tilt for Archviz
  • Adds Autofocus Single and Autofocus Continuous to your camera
  • Control Motion Blur using Shutter speed or Shutter angle
  • Adds Physical Light units and Color temperature (version 3 only)
  • Supports Eevee, Cycles and LuxCore (preferred)

Old version 2 is available for free:

You can learn more about it by watching these videos:

Known limitation: Do not use the Power or Irradiance units if you want to be able to switch your scene between Cycles/EEVEE and LuxCore . Use any other unit (including Advanced Power) to make sure the conversion is possible using the Apply Photographer settings button or new Warning buttons.

Known issue: White Balance picker is currently broken in 2.91 because of API changes.

Latest version for Blender 2.8x and 2.9x: 2020/10/25- 3.4
Version 3.4:

  • Physical light units will now be taking the Scene Unit Scale into account.


  • Fix Add Camera error if not in Object mode
  • Fixed rare Cancel AF tracking bug


  • Fixed White Balance picker bug
  • Fixed auto-exposure console errors when disabling the add-on


  • Fix animation issues that could affect other add-ons.


  • Fixed autofocus raycast error for Blender 2.90.1


  • Fixed autofocus for Blender 2.91
  • Exposure is now turned off by default to avoid confusion and exposure overwrite when opening old scenes that were created without the add-on.



  • Camera List is now alphabetically sorted.


  • Animation support was disabled by mistake.
  • Fixed potential inaccuracy with White Balance Picker.


  • Fixed duplicated AF header buttons
  • Fixed AF enabling DoF
  • Improved error messaging for AF when using several 3D views
  • Fixed crash when undoing AF-Tracking
  • Fixed Add-on panel errors when the Scene camera isn’t a camera object.

Known limitation: the Lock Camera to View button in the header isn’t representative of all 3D views but just the first one.


  • Lens Tilt and Automatic Tilt
  • Photographer panel now accessible in the Compositor


  • LuxCore: Fixed Aperture settings

New features:

  • Auto Exposure
  • Negative lights support
  • EV guide is now visible in the 3D view panel
  • Fisheye lens support (can be used to add distorsion at longer focal length)
  • Exposure and White Balance panels now available in Image editor


  • MasterCamera Transition speed now works as speed instead of “slowness”


  • Fixed division by 0 when using black color in the light.
  • EEVEE Light sampling threshold button wasn’t unregistered properly
  • Fixed white balance picker with ACES (currently using Raw values)
  • Fixed wrong light unit conversion when using drivers
  • Fixed end playback error when using Autofocus animate


  • Enabling Resolution with Resolution mode set to Custom Resolution will grab whatever Blender resolution you were using instead of defaulting to 1920*1080. (@jcfnav )
  • Resolution long edge is now an integer, as it should be.
  • Physical Light warning if energy value is different from what it should be (happens when you changed engines or changed light energy outside of the Physical Light panel)
  • LuxCore: Exposure Panel warning if using wrong Tonemapper settings
  • LuxCore: Fixed wrong light intensities when changing light units and other intensity issues.


  • LuxCore : Fix Radiance to Luminance conversion of Physical Lights.
  • LuxCore : Camera Exposure is set Off by default when adding camera from panel. This is to make sure LuxCore Tonemapping gets properly updated when turning Exposure On.
  • Fix 2.82 version misleading warning. The add-on is compatible with 2.82.


  • Supporting animations in the viewport and rendering for Physical Lights and Physical camera.
  • Master Camera animation support, with new Set Key button.
  • Physical Light panel can now be used with LuxCore.
  • A lot of small fixes for better user experience, and code cleanup.


  • Auto Light Sampling Threshold set OFF by default as it kept refreshing the viewport.
  • Adding new warning and button in the Exposure Panel when Light Sampling is too far from its optimal value.
  • Added Preferences option to hide the warning if you find it annoying and you want to manually take care of the Light Sampling.


  • Auto Light Sampling Threshold: the value will update automatically when changing scene exposure. Can be disabled in the Preferences, which will add back the Calculate button in the render settings.


  • Fixed panel classes unregistering.


  • New Photographer panel in the 3D View. You can place Photographer options into existing panels in the Preferences.
  • New Scene Camera settings with Preset support
  • Fixed White Balance viewport refining issue when moving the mouse
  • New custom ratio option in the Resolution panel
  • Refined Exposure math and introduced Lens Attenuation factor to match Unreal. This option should help matching cine lenses and T-Stop values.
  • Adding Physical Light units (optional or additional panel in the Light properties
  • Adding Color Temperature to Light properties without using nodes (compatible with EEVEE)


  • Fixed settings that wouldn’t update if Exposure controls was turned off
  • Added False Color checkbox in Exposure to validate your exposure


  • Fixed LuxCore Depth of Field F-Stop issue.
  • Fixed restoring previous selection when creating AF-Tracker.


  • Adjusted default exposure value to make sure exposure is physically correct.
    WARNING: This means that old scenes that were using previous versions of Photographer will look darker by 1.61 EV.
  • New Exposure Compensation slider, similar to real cameras.
  • Compatible with LuxCore. You can now easily switch between Cycles and LuxCore using Photographer and physically based light intensities.
  • White Balance picker now samples a square of 9*9 pixel for more accurate reading on noisy renders. - Small fix to disable the Aperture setting if “Affects Depth of Field” isn’t checked in EV mode.


  • Camera list in the right panel.
  • Master Camera that can fly between cameras
  • Set warning when AF-S while there is a focus object defined in the camera (AF-C only shows warning in the console at the moment, it will require more work).


  • Supports latest Blender 2.8 builds after the API lock. Please make sure to update your Blender 2.8 as it won’t work with older builds.
  • Fixed White Balance Picker that was broken
  • Added Autofocus Animate
  • Added AF-Track to add a tracker on the surface of an object


  • New Continuous Autofocus setting to set the update interval
  • Focus Distance in the header is now available with AF-C
  • Updated to work with new Depth of Field API
  • Using new app.timer for cleaner code. Should be less expensive that way.
  • Depth of Field using Radius value seems to have been removed from the UI, so now Affect Depth of Field will simply turn on or off the Depth of Field. Aperture is the way to go.


  • Autofocus ray-cast change, it works with instanced collections now.
  • AF-C won’t be as expensive as it sends rays less often.
  • Hiding AF-C and AF-S header buttons if not looking through camera


  • UI improvements based on @William 's suggestions, thanks a lot for your help!
  • The UI should now be less “jumpy”, enabling or disabling settings instead of hiding them.
  • Relevant information is visible even when collapsing panels. I prefer to keep this kind of info visible as I tweak the settings rather than in a different panel.


  • Thanks @joemoehobo for starting porting over to 2.8, thanks @hypersomniac for the viewport update trick.
  • Changed context.user_preferences to context.preferences (API change)
  • Little cleaning.

Latest version for Blender 2.79: 2019/01/9: 1.2.3.


I tried Blender 2.79 and 2.79b. Got this error:
AttributeError: Writing to ID classes in this context is not allowed: Camera, Camera datablock, error setting Camera.dof_distance

When I click the checkbox in the Camera object Data tab, all settings dissapear.

Any idea what is could be?

Official versions seem to be, rigthfully so, more picky than the nightly builds. I’ll try to fix it ASAP.

EDIT: Fixed the issue.
If you want to make sure that the camera settings update properly when changing active cameras, please use the Make Active button in the Photographer panel.

You will also have to manually Reapply the settings if you changed the other properties in the Scene or cameras… this is less than ideal.

Congratulations Fabien! Nice work.
I especially love the per camera resolution feature. An invaluable addition to Blender imho.

1 Like

Thanks, after the fix it works now.
I will experiment with it. So far I enjoy the whitebalance and ratios.

I love it!

I noticed the AF-C could spam an error, it’s fixed now!

This is just what I have been waiting for,
absolutely brilliant.

great features… exposure per camera mainly. thank you

Very good addon - it’s so helpfull to find a mood a final render:)
Are You planning add some features like Corona VFB has? Contrast, some corrections for highlights (highlight compress), filmic highlight and filmic shadows, saturation, or some vignette and LUT or glow and bloom? It’s so potential addon, man - You’ve opened new ways to preparing renders in blender:)

1 Like

Well the full potential of an addon like this, would be to have the entire color management and render settings bound to cameras, or to word it better, have those settings overridable per-camera.
But hey! It’s version 1.0 :wink:

1 Like

Wonderfull, a Time and Color Saver.

As you may have noticed, the white balancing is only controlling White Levels of the Curves in the Color Management. Anything that can be done with curves is doable:

  • Contrast should be pretty easy. You do have different contrasts available to you in the Look menu, although I have to admit they are not very flexible, and not per camera (only per scene)

  • As far as I understand, Filmic shadows works like contrast… would have to test it to know what it does exactly.

  • Highlight compress should be doable, although not sure it’s really needed if you use Filmic tonemapping…

  • Saturation can’t be done with curves. Although the same way you can use LUTs for contrasts, we could have different levels of saturation there and control it per camera…

  • LUTs… to be honest I wished there was an easier way to make LUTs for Blender. Exporting Cube files from Resolve is pretty straight forward, but having to convert them to spi3d LUTs is kind of a pain. Because the functionality is already there, you can copy any OCIO LUTs to Blender\2.79\datafiles\colormanagement\filmic and you’re set.

  • Vignette, glow and bloom: these are post effects, easily done in the Compositor as you probably know, but not possible to do in the Viewport with the way Blender works right now. Probably needs C++ features. Hopefully bloom can be added in 2.8 as a post pass as it already exists for Eevee.

Googling about generating spi3d files, I came across this really AMAZING tool:
Oh god, this is so perfect.

Nice work ! Thx !

Great work. Thanks

This is really nice to work with.

Thanks! I noticed that the AF-C would not work if the Photographer panel was turned off, so I removed the Panel button entirely. It was just adding complexity for no real reason.

Noticed some errors when turning on and off the addon, this should be fixed now in the latest version. Sorry for the inconvenience.

FYI, the Focus Distance in AF-C doesn’t always update in realtime in the 3D view header, you have to do an action (like mouse click) or move the mouse over it to refresh. But don’t worry, the focus is done properly.
I’m looking for an elegant solution to refresh the UI in a cheap manner.

Very Good! This is what I want.
Thanks you for sharing!