What is the best ACES workflow for VFX and more

Hi Emil
Thanks for your first post. Welcome to ACESCentral!

Hey thank you!,

After reading my post i can tell i had been stuck inside for too long and just really wanted to talk about ACES with somebody :smile:

Hi Emil!

Such an interesting post! I work with implementing an ACES pipeline at IKEA Communications AB in Älmhult and it would be interesting to talk with u about all of this. Send mail to kristian.krebs@inter.ikea.com and I will give u my phone number. You are Swedish I guess…

Kristian

1 Like

Hi Emil and ACES

I have had similar problems. You want the pipeline to work but it’s critical that everything aligns along the road. I use C4D and Octane (exr linear(sRGB)) with DaVinci Resolve/Fusion (ACES). I have no way of knowing for sure how Octane’s linear sRGB profile fits into ACES. You need to know what you are doing is right and not just guessing by eye if it looks ok. I looked into this but found it a combination of this and that; OpenEXR, Opencolor etc. I just looked now and saw that these have now been taken under on wing of the Academy which makes more sense. I am going to relook now to see if anything has improved in the workflow and if I can make more sense of it. Glad its not just me trying to get it right. Have a look at this website https://www.aswf.io

Hello Emil,
welcome to ACEScentral. I have been myself wondering the same questions as you are. I work in a CG studio in paris and have been studying ACES for cg for over a year. Hopefully, some of my insight might help you.

  • For rendering, the best rendering space is ACEScg. Some tests have been done by Thomas Mansencal and Anders Langlands to compare renders in ACEScg, Rec.709 and Spectral. Result is : ACEScg is overall the best rendering space as it is closer to Spectral Rendering. Here are the links.
  • We use ACES2065-1 for delivery to DI. The exr coming from our render engine are in ACEScg but the exr coming from Nuke are in ACES2065-1 as it is the recommended format for exchange between facilities.
  • I would never render in ACES2065-1 since Steve Agland from Animal Logic did those tests showing it was not an appropriate colorspace for rendering.
  • To use properly ACES, you need a software that can read an OCIO configuration like Maya, Nuke, Guerilla Render… Unfortunately Photoshop does not accept OCIO configs and this is why we need to use ICC profiles. Does Unity accept OCIO config ? It seems like it is not the case. We have the same issue with Substance where we have to use an exr as a display LUT to simulate the ACES ODT look.
  • Have you read those threads on ACEScentral ? About Photoshop and Full CG ACES workflow.
  • Finally, I have tried Resolve recently and i was able to import some ACEScg footage in it without any issue. I can look back for the configuration if you want.
  • Do you know about this article ? it may be helpful.

Hope that helps and welcome to the ACES community,
Chris

1 Like

Hi, thank you for your interest il send you an email this afternoon :smiley:

Yeah i cooked my solution down to almost that aswell.

Rendering with Octane or Vray in 3ds Max then comping in Fusion.

I save my renders as Linear EXRs and import them into Fusion as a ACEScg colorspace, somehow thats giving me the best result.

Hey, Dude Epic reply!

From what i have found Arnold in Maya and Guerilla are the only renders that actually render in ACES color space,

I am using Octane and Vray for the moment, Vray has an OCIO implementation in their VFB to see how your renders would look when converted to ACES,

So my most reliable method so far has been render old school linear EXR files and use Fusion to bring them into ACES.

Also when i import them into Fusion i choose ACEScg as the input colorspace, even thought its just a linear EXR raw from either octane or vray, But it seems to give me the correct result.

Do you know if ACEScg is the same as the internal linear colorspace that renderers use like octane and vray ?

Hello Emil,

when it comes to rendering primaries, we have to be extra careful otherwise this would lead to big misunderstanding. :wink:

From what i have found Arnold in Maya and Guerilla are the only renders that actually render in ACES color space,

Just to be sure, you are talking about ACEScg (AP1) colorspace, right ? We should never render in ACES (AP0). From a quick google search, it looks like Blender, Vray, Katana, 3DSMax do have OCIO support. It is quite common in CG softwares.

I would say that most of the CG artists render in ‘Linear - sRGB’. They generally say : I render in linear but it is only half of the information. Linear is not a colorspace, it is a transfer function. There is a brilliant article by Thomas Mansencal on this topic if you haven’t read it.

So the short answer is no. ACEScg is not the same as ‘linear’ colorspace. If you are not using any OCIO config, you are most likely rendering in ‘Linear - SRGB’, ‘linear’ being the transfer function and ‘sRGB’ being the primaries (or gamut).

Therefore you should import your exr in Nuke as a ‘Utility - Linear - sRGB’. I am surprised that importing the exr files as ‘ACEScg’ in Fusion do work for you if you are not rendering using any OCIO.

Let me know if I am not clear, I hope it helps.

Chris

I kinda knew all that but thank you for clarifying my terrible terminology.

VRay and 3Dsmax do support OCIO together but its just VFB view transform, it doesn’t actually render in ACEScg (AP1) At least as far as i have figured out.

Blender idk, their new update implements the filmic blender colorspace, but its not the same as ACEScg, and there is a way to get OCIO to work with it but its not id say “official” support. Besides im not about to go down the blender train just yet :stuck_out_tongue: Maybe in a year.

So in your opinion the color space output by the classic renderers is just sRGB with a linear curve?

I am using OCIO in fusion, just not in max

Yes, that is my opinion but I may be wrong as I haven’t used 3Dsmax in a long time.
I would say the best test is : do you see the same thing in Vray and Fusion ? if the answer is ‘yes’, then your workflow is good.

You can send me an exr privately if you want me to test it.
Funny thing, have you seen this topic on the forum ? It looks very similar to your question.

Chris

Yes the VFB in Vray and the output in fusion are identical, there are microscopic differences when i read the wave form but its incredibly difficult to tell, and impossible to tell when just viewing the image without the waveform.

Il send you some examples.

I did read that thread but it kinda concludes to using a hack for octane and the answer for Vray is not form somebody that uses vray, rather just somebody who know that the Vray VFB has a OCIO view transform that allows the artist to see what the Linear output would looks like once converted to ACEScg

I’m not 100% ceirtain but id say 99% that Vray renders in its internal colorspace and then outputs a linear sRGB like you said. However i’m slightly confused as to why it acts like an ACEScg colorspace when i import into fusion then, Maybe fusion is doing something weird, because i cannot get the same method to work with Nuke

Yes, that’s kinda weird. I have not used Fusion in a long time neither. If you send me an exr, could please provide as well a printscreen from vray and fusion ? So I can compare ?
Cheers !

V-Ray actually does support rendering directly into ACEScg now in V-RayNEXT update 2… at least in 3ds Max. You need to change the engine by writing a simple maxscript command.: (special thanks to Lele and Vlado over at the CGForums for this)

CPU
vr.options_rgbColorSpace = 2
GPU
vr.V_Ray_settings.options_rgbColorSpace = 2

My biggest issue right now is getting an EXR into Photoshop with ACES. I’m unable to succesfully match my viewport unless I use the OCIO plug-in. (Convert ACEScg to Rec709). But when you do this, you loose the full dynamic range of the image in 32-bit. I’ve had zero success otherwise tryign to generate an ICC or LUT to handle this instead.

Emil, thanks for asking this question, it saved me from having to write it myself as I have the same issues / questions as an Octane / Redshift / Houdini user :slight_smile:

From what I’ve been able to put together when you render out of Octane (or any engine that doesn’t render directly to ACEScg) in linear EXR you are rendering to the sRGB primaries not to the sRGB gamut (see this post which shed some light on the issue for me). This apparently allows the primaries to be remapped to any other space (ACEScg) with out loss, but there’s still a conversion and I’m assuming that the results would be different / more optimal if you were able to render directly to ACEScg and not have to convert?? This is obviously an interim question that wont be an issue once rendering direct is implemented into these engines.

Regarding Octane implementing ACES OCIO there is this one mention by Godorak (Octane developer) on the Octane forum stating that ACES/OCIO support is in progress, though it’s hard to say if this is anything more than a VFB like Redshift and when it will arrive is another question, but it’s good to see that it’s at least being considered.

It would be great to get some feedback in this post from anyone on the ACES team as I believe these fringe questions are important and not at all covered in the majority of the documentation out there. @Alexander_Forsythe maybe you could help shed some light on this one?

Also, regarding Photoshop, I don’t believe Adobe will formally support 32bit EXR editing or OCIO until there’s a need in the Instagram community for such tools :joy: Seriously though, take a look at Affinity Photo as they seem to be more active in directly supporting this workflow:
Affinity OpenColorIO Setup
Affinity Photo - OpenColorIO: baking colour space transforms

It would be great as well to hear if you guys have had any new insight regarding workflow since you wrote these posts.

Best / Travis

Hello Travis and welcome,

unless I miss out on something sRGB Gamut and sRGB primaries are the same thing (the triangle in the horseshoe aka the CIE diagram from 1931).

If you render in Linear - sRGB (Linear being the transfer function and sRGB being the gamut/primaries), yes you can convert to ACEScg directly into Nuke by importing your footage as Utility - Linear - sRGB.

What would be the advantage of rendering directly in ACEScg ? You get a more accurate GI (closer to spectral rendering) I detail all this stuff on my website :wink:

Most the information I collected comes from posts and articles by Thomas Mansencal. I have linked all the articles on my website as well if you want to have a read at the sources.

There is a post about Photoshop on the forum:

describing a few workflows. Although I haven’t been able to crack the ICC profile setup yet. For the moment, we convert our renders to ACEScc (logarithmic) to work in Photoshop. Not ideal but it is a workaround. This setup is also described on my website. :wink:

Hope that helps,

Chris

Hi Christophe,

Thanks for the clarification. I’m coming from the traditional integer side of the color profile world as a photographer who’s getting into CG. I’m still wrapping my head around the linear side of the equation. Thank you as well for writing your book on CG cinematography its really an amazing resource for those of us who are trying to learn the craft and quite generous of you to produce! I read the first two chapters and while it all makes sense for the most part, the difficult part is getting it working in actual production. I think it’s a price to be paid though for being on the cutting edge :slight_smile:

I’ve been experimenting with Affinity Photo trying to convert my stills as I can’t quite afford or justify a Nuke subscription currently, but am still having a little trouble figuring out how best to set things up properly for image editing. I know that converting my sRGB EXR image from Octane into ACEScg will change the look, but I’m not exactly sure what I’m looking for so it’s hard to tell if I’m doing it correctly. I have a post on the Affinity forum with all the details here but it’s probably only of interest if you use Affinity Photo.

Thanks for the link re the Photoshop implementation. I’ll take a look and see if it’s something I feel like tackling. If I get anything working I’ll let you know.

Best / Travis

Thanks for your comments ! Let me know if I can help furthermore !

@travisrogers I don’t think the Photoshop workflow will help you because it is for working with log encoded images, not linear.

For affinity (or any ocio software) you need to define the following:

  1. The working space (ACEScg)

  2. The input space (for a render ACEScg)

  3. the display space (sRGB if you are on a standard computer monitor)

  4. The output space (the color space you want to save the image in)

I watched the Affinity video here which covers #3 above (Device:ACES, View: sRGB). There’s another video that covers #4 above. One issue is that it appears that Affinity is assuming the working space is (sRGB primaries) scene linear. You may be able to change that with a OpenColorIO adjustment. You’ll want to go from Utility-Linear-sRGB to ACEScg

@derek, thanks for the reply. I did get some feedback on the Affinity forums as to how to get it working in Photo. See the post here from James Ritson. You basically need to add a procedural texture in order to reverse the gamma to 2.2 and then you view it through the ICC profile display transform after converting from scene_linear to out_srgb in your OCIO adjustment layer. It was the procedural texture trick that was the ah-ha moment for me as the Levels adj layer will only let you boost the gamma to 2. It should make sense if you check out the post.

1 Like