Blender to Photoshop EXR Workflow Help

Alexey, thank you for proof testing the filimic .exr render. Please render your image. In the window (F12 render) or image viewer, press T, and navigate to the SCOPES tab. Screen capture it. I am pretty much sure all your 16 bit float value ranges are in there. If not: save the .exr, and THEN open it using the image viewer and screen capture the scope. Sounds like Blender is WRITING a color curve when it saves 16 bit float which SHOULD NOT happen. Hopefully we’ve found a bug to fix. Also, are u on 2.81? If your’re testing 2.82, let us know.
Thanks!

I use Blender 2.81a.

Let me know if you need the rest or if this is enough to troubleshoot this issue.

If not: save the .exr, and THEN open it using the image viewer and screen capture the scope. Sounds like Blender is WRITING a color curve when it saves 16 bit float which SHOULD NOT happen. Hopefully we’ve found a bug to fix.

Exr-IO for opening EXR multi-layered images in Photoshop. Including decent support for Cryptomatte.

And a plugin to manage OpenColorIO in Photoshop.

2 Likes

In photoshop. WHen you set the mode to 8 bit from 16 bit you get a window where you can edit the highlights and shadows. I think it does that.

1 Like

From this picture all your colors are there. So the problem is not the .exr generated in B3d, but the reading in PS.
Have you tried to import the .exr in after effects? use Extractor plugin to extract your channels, then open the vectorscope on AE. It should be identilcal.

There’s also the option to use Davinci Resolve (Fusion). You just import your 32bit fullfloat .exr, load up your OCIO filmic color config file (simple node setup) and you pretty much get the same result as in Blender Filmic.

You’re probably right.

I need this workflow Blender to Photoshop work for me so I’ll investigate further.

I tested today’s 2.82 beta version and have the same result:


PNG on the left matches the Filmic view in Blender. EXR on the right doesn’t.

The is a video explaining the Blender to Photoshop workflow. I don’t see the author to have the issue I expirience.

Here are the screenshots from the video. Image on the left is Blender vieport and on the right the rendered multi-layerd exr file open in the Photoshop.

Thank you. I don’t have AE to test the image as David suggested but I have Davinci Resolve. Can you maybe recommend a good video explaining the process in Davinci?

I tested the process with 2.80. Getting the same result. Haven’t tested Davinci Resolve yet but I’m leaning toward Photoshop being the issue here.

Hi Alexey, Blender special forces Ops here. :slight_smile:
I am testing what you mention on Davinci as well.
Let me work with Blender 2.83 (available at blender.org/downloads -click the rocket for experimental versions, download blender 2.83 from the next page).
I see you’re still on 2.80 that might be the issue. Also, we are on 2.81a (official) which solved a lot of bugs. So if anything, please install that version.
I’ll upload things comparing from PS to B3D in a snappy.
Thank you for your persistance! Your workflow is important to us.
Thank you for calling 1800 I love blender :smiley:

(EDIT)
I reviewed it on my photoshop CS6. Both exr and png. Look the same. I explain the light issue here: https://streamable.com/jyxi2

This was tested on 2.81 official.
No extra data was written. I am using I/O exr importer version 2 which was updated just this past 20th of Jan. (yeah, it picked up in CS6!)

1 Like

Blender’s colour management is a display transform. You can save .png with the transform ‘baked in’, but this is not desirable for .exr. For the .exr to display the same way in Photoshop you need to put it through the same display transform.

Photoshop doesn’t support it.

You can try the fnordware OpenColorIO plugin for Photoshop, but as others have already suggested, a better approach is do the post processing with an application that properly supports OCIO, such as Fusion standalone or Nuke. I’m sure there are others . . . Or you can save 16 bit .tif from Blender if you really want to use Photoshop.

Here’s another reason to ditch Adobe - https://twitter.com/jkierbel/status/1210235542404775945

3 Likes

Here’s one i found. https://www.youtube.com/watch?v=nJYVIKjYkO8

2 Likes

Thanks guys for helping me out with this. I really appreciate it. It’s a weird case. I know Photoshop sucks with modern color management process. Unfortunately I’m very effeccient with it and would like to build Blender to Photoshop solid pipeline with minimum friction. I moved to Blender 2.8 and really love a lot about it but some things require tinkering to make things work.

I have a good understand of color theory and color science but at some point it gets a little bit too complex how colors transforms between apps ect.

Still it’s very important for me to get predictable results every time.

No, I’m on 2.81a. And I first discovered the issue with EXR in my workflow on this version. I was testing 2.80 final and 2.82 beta to see if I get different results. Nope, same issue. I tried to load images with in Photoshop 2018 and latest 2020. With plugin and without. Same issue. I also opened the image in Affinity Photo. The same issue occurred as with Photoshop which suggests that Blender must be outputting it that way. I haven’t tested it in Davinci Resolve yet.

Have you tested it on vanilla version? I have a suspicion that some addons might interfere somehow. Haven’t tested the issue on vanilla Blender yet.

Anyway, I haven’t pinpointed the issues yet and will keep trying different scenarios. I’ll also research the offered solutions to see what might work for me and if I can figure out what causing my specific issue.

Really appreciate the help!

Same issue. I also opened the image in Affinity Photo.

Please ignore this statement. Once I applied proper color management the image looked correct in Affinity Photo. I used this video as a guide:

Yes, at the moment it seems like the only viable solution if I want to use Photoshop. I tested it. 16 bit TIFFs look as expected.

I really wounder though how you manged to open it correctly there. :thinking:

1 Like

EXR works correctly in Davinci Resolve as well. It must be Photoshop then. :frowning_face: Danm it. I really hoped to use EXR with Photoshop.

I am using version 2. Updated on January the 20th.
https://www.exr-io.com/
I am using this to read .exr multi layer in photoshop.
My configs:


full color values’ ranges exist.

more settings

1 Like

@organic and @smili pretty much nailed it all. A few recap points…

EXRs ignore all colour transforms. It doesn’t matter what is set.

It matches neither. It’s radiometric zero to very large values. Photoshop can’t deal with EXRs properly given it’s history.

All ACES brings to the table is a wider gamut. But no gamut mapping means it’s largely a broken mess until they fix that. Hard gamut clamps from larger spaces wobbles your image into a jacked up saturation, with huge colour skews.

Not sure where you read that, as EXRs are float encodings and they are designed to encode data. Sure, convention is that if is colour data it is linearly encoded, but that’s not mandated.

Resolve is also largely display referred. You can hack around it, but by and large it expects to operate in device / display encoded values. It will automatically linearize in some cases to device / display linear, but not scene linear.

Affinity Photo is the only option if you are looking for something like Photoshop, but well… works.

If you really need to use Photoshop, encode to a 16 bit TIFF using Filmic Log. That’s what it was designed for. Apply an S curve where the X axis is around 60% and move it to where Y is around 50%. If you want to get fancy, convert the contrast LUTs to some ridiculously crippled format that Photoshop supports and you’ll get 1:1 starting from Filmic Log, as Filmic Log bakes the gamut compression into it.

The entire Adobe suite is display referred garbage. It works great in graphic design, horrible if the goal is proper light transport results.

Resolve will also suffer the same fate, albeit better than Photoshop, but also not scene referred without knowledgeable hands steering every transform via nodes. If you take Filmic Log into Resolve, it will behave more closely to how Resolve was designed. You can use one of the LUTs I converted for Resolve for the Agent project via this link.

Fusion standalone is another option, as it is feasible to work with scene referred ratios. As is Nuke, but it is out of most folks’ price range.

Affinity and Fusion are excellent options, and extremely affordable to free beer.

3 Likes

Thanks for chiming in Troy. I appreciate you sharing the knowledge on a such complex topic as color science.

Photoshop can’t deal with EXRs properly given it’s history.

Affinity Photo is the only option if you are looking for something like Photoshop, but well… works.

Fusion standalone is another option, as it is feasible to work with scene referred ratios. As is Nuke, but it is out of most folks’ price range.

Yes, I already figured if I want to use properly supported EXR I would have to use Affinity Photo. Fusion is another option I’m exploring.

If you really need to use Photoshop, encode to a 16 bit TIFF using Filmic Log.

Yes, I will most likely go this route as right now I can sacrifice the convenience of having 32 bit image data to manipulate for a more streamlined workflow where I can stay in Blender > Photoshop ecosystem for now.

Also just very recently Alex Fry posted a workflow that makes it possible to get matching results with EXR in Photoshop.

It based on ACES and I tried it with Blender. As I gathered it’s not really a “correct” way of working it produces good enough result and allows to work in Photoshop with EXR.

It get’s pretty complex to work with it in Blender for a couple of reasons so I won’t be using it. I would like to keep using Filmic. I was thinking it should be possible to do what Alex did for ACES for Filmic to support Blender > Photoshop EXR workflow. But I don’t know Nuke and what Alex describes is over my head in color science.

Troy, do you think you could look at Alex solution and make similar LUT for Filmic to support Blender > Photoshop EXR workflow?

It would be really helpful. If not, don’t worry about it. There are other ways I can work.

1 Like

Rather simple via the Filmic Log approach, as all you would need to do is convert one of the contrast LUTs to CSP or some other.

EXR to Photoshop directly is probably plausible too, but you’d need to diagnose the best LUT formats for doing so, and what the supported feature set is.

Forward direction, the gamut map looks like the following:

  1. BT.709 primaries, scene linear -> Pure log2 encoding coveting 25 EV from -10 to +15.
  2. 3DLUT for gamut map along saturation.
  3. Uniform scale of log2 data EV -10 to EV +6.5, a scale of 0.66 if memory serves.

If tackling the primary gamut mapping, that’s where it would be wise to stop, leaving you in Filmic Log.

In theory it would be plausible to apply it as an adjustment layer, permitting the work on scene linear data below it, minus all of Photoshop’s flakey math.

Wrapping the contrasts into a separate series of LUTs then allow you to mix and match.

I avoid PS like the scourge it is, but happy to help you whip the LUTs into shape. Should be simple via Google Sheets if you want to try. Easy for me to help out there as well.

Give it a shot on one of the contrast LUTs to start.

I believe this exr-io plugs n together with this video can create the result you want

If your smart you make actions from those steps so its automated