Multilayer OpenEXR Images from Blender to Photoshop, with Correct Colors!

Hi everybody!

As I have searched the web for the best solution I have found a lot of scattered information. This thread is supposed to collect this information and deliver a working solution. Please note that this workflow only works for Windows since the EXR-IO Plugin only supports Windows.

I am constantly looking for a better solution. So if you have any idea of how to improve the workflow, feel free to share!

The following steps make up the workflow:

  1. Set view layers and render passes in Blender.
  2. Render the image.
  3. Save as Multilayer EXR (This will include all the view layers and render passes).
  4. Open the Mulilayer EXR in Photoshop (using the EXR-IO Plugin available on the Creative Cloud Marketplace).
  5. Transform the colors from raw render-data to sRGB (or other colorspace).
  6. (Optional) Set bit depth.
  7. Save as PSD or PSB.

Please note that I have a script on github which automates step 5 for all layers in a Photoshop document.

Installation:

  • Install Photoshop
  • Install Blender
  • Install “EXR-IO” for Photoshop (available on CreativeCloud Marketplace in the Plugin Section)
    image
  • Install OpenColorIO for Photoshop (https://fnordware.blogspot.com/2017/02/opencolorio-for-photoshop.html)
  • Copy the files located here:
    C:\Program Files\Blender Foundation\Blender 4.0\4.0\datafiles\colormanagement
    to the following Folder (create if non-existent):
    C:\ProgramData\OpenColorIO\blender_filmic_colormanagement
    Your files should match the following screenshot:

    If you plan on using the script mentioned above to automate step 5 these paths must match exactly!

Let's use it!

Blender

Photoshop

  • Open your saved .exr file with photoshop. I use the settings shown. Feel free to experiment.
  • You should now have a photoshop document with all layers.
  • As you can see the image colors are not correct. Whites are clipped and contrast is too high.
    Press ctrl+shift+y to preview color gamut warning. See the highlight with a grey border (circled in red). This grey border indicates that the color cannot be displayed correctly.
  • To correct this you need to convert the raw render data using the OpenColorIO Plugin.
    Select the layer you would like to convert. And go to Filter > OpenColorIO > OpenColorIO…
    I used the following settings. Although I am not 100% sure if this is correct. Please correct me if I’m wrong.

    I used these settings based on the following article:
    https://help.maxon.net/r3d/cinema/en-us/Content/html/Compositing+with+ACES.html
  • The image should now be displayed correctly and the color gamut warning should be gone.
  • Repeat this step for the other layers
  • Set bit depth of the image to 8 or 16 bit.

Done!

I hope this helps. I am aware that this workflow has its flaws and I would like to stress that it's not final. Please feel free to share your feedback and try it yourselves.





Github for the problem including the photoshop plugin to automate step 5:

2 Likes

Thank you for a great article!

Is it possbile to change the look in Blender as well in Photoshop? I can’t get the color to match.

Note that import/export filters are also available for open-source GIMP.

Sry for bumping up this old thread. And thanks for your plugin. I have a few questions I would like to ask.

  1. With the OCIO Photoshop filter, I set the same color space as in Blender’s color management settings. For my example, it’s sRGB for the sequencer and display device, and Filmic for the display transform. However, the result is slightly off compared to the Blender viewport or the result yielded by your plugin. I’m just wondering which part I did wrong or which combination the plugin used.

  2. In terms of composite passes, it looks right or close enough after transforming all the layers and setting up the blending mode in 32-bit. However, there is no tonal mapping option if I want to retain layers when converting color depth in photoshop. Sometimes the exposure is way off if I convert to 16-bit. How do you solve this problem?

You really don’t want to sample-down from 32 to only 16 bits. There are only 65,536 possibilities in a 16-bit word; versus over 4 billion with 32. If your final display-file format only supports 16-bit words, do the conversion very last. Your pipeline should use the greatest number of bits available, and the same number of bits each time.

If I were to process the image in the blender compositor, fusion or Nuke, the conversion would be reasonable. In terms of photoshop, there’s really nothing to utilize in 32-bit mode, even though it’s more on Photoshop’s side. I’m trying to find a way to edit the image with the full potential of Photoshop while retaining control over the passes.