ACES set up for Blender using OCIO

Hi Uno,

I am not familiar with Kubuntu, but I guess the process to set a variable will be quite similar as it is in MacOS.
A quick google search gave me this result:

https://help.ubuntu.com/community/EnvironmentVariables

When you get it running, please share the commands here and I will update my page too.

Daniel

I was looking for a solution specifically for the Blender UI bug where all the separate options are displayed on-screen. With something around 350 entries in ACES 1.2, that list will cut off the later parts of the alphabet even on high resolution displays.

My interim solution was to edit the ocio.config file itself. Something that many people aren’t aware of is that the vast majority of the entries in the config are just aliases. These are designated with a specific family type, Family: Utility/Aliases. Out of 350 entries, roughly 250 entries are just aliases.

Now those aliases may be used by specific pipelines; for instance a Maya tech artist might prefer the aliases that use underscores for example. But they don’t appear to represent a unique transform. Deleting them from the list is probably the fastest way to solve the issue in Blender.

If you’re just using Blender then you’re done! Otherwise read on


See, if you set up your OCIO as an environment variable on Windows (as most people recommend you do) those edits you’ve made will show up in other 3D apps. And it turns out just deleting aliases is enough to cause at least Maya 2022 to crash on start.

So what we need is a special OCIO for Blender, with your truncated list, but a larger set for everything else. So my current approach is to set the OCIO environment for Windows to a correct/full ACES 1.2 config, then have a copy of that config that I use specifically for Blender. Blender will default to your environment variable version but you can use the .bat file technique Daniel shared to override it.

I tried initially to just edit the name of the ocio.config file to be something like “ocio_blender.config” or “ocio_global.config” but it seems that file name is important. So in the end I just made a copy of the whole ACES 1.2 folder for Blender and renamed the whole thing so that my config could still be distinguishable despite having the same name. My .bat file wound up something like this:

Set OCIO=C:\OpenColorIO-Config-ACES-1.2\aces_1.2_blender\config.ocio

START "Blender 3.0" "C:\Program Files\Blender Foundation\Blender 3.0\blender.exe"

The command to set a specific ocio on blender start on linux is:

Exec=env OCIO=/path/to//config.ocio blender

Hi all,

I know it’s an old topic but currently I have a config ACES 1.2 for Blender that I use in Blender 4.0 too but I would like to move to ACES 1.3 to fix some issue like clamping in some case. My setup I get sometime ago look like this (screenshots).

There is a way to duplicate my folder and just update the core file to move to the ACES 1.3 without changing my OCIO config ? Or tell me how to create the file needed to after update my ACES 1.2 to ACES 1.3 ?

Thank you,

Matt

Hi Matthieu,

did you try to use the OCIO environment variable?
I need to update my pages to Blender 4.0, but the steps are still the same. (1.4.1. Blender 3.6 LTS & OCIO v2-release – Brylka – TooDee – PanicPost)

I am having three Blender icons in my dock on the MAC: default OCIO, ACES 1.3 OCIOv2 and ACES 1.2 (for Display P3). This works very well for me.

Best regards, Daniel

1 Like

Hi Daniel,

Yes I use an environment variable for ACES and Use Blender Launcher to switch between version of Blender. I use only ACES now, more easier between all the softwares.

Maybe I didn’t explained very well what I try to do (not native English speaker).
I have ACES 1.2 package in Blender 4.0.2 using the environment variable but I want to get ACES 1.3 but I didn’t know how to got it as the same package I already have ACES 1.2. When I said package, I’m talking about the folders for “baked”, “luts”, “python” from my previous screenshot. Can I use the same folder with ACES 1.3 ?

I checked your link and I think it’s what I need :wink: I will follow your tutorial.

Just an other question, do you think it will be possible to match my ACES 1.2 config in the 1.3 config ? I have remaped some values to use some plugins in Blender (sRGB → Standard, use ACES - ACEScg for color picker) and to match after in Nuke and Davinci Resolve.

Could you look at my ACES 1.2 OCIO config in attachment and tell me what I need to do in the new one to match this one or can I do the same ? And if it’s good or if I need to avoid some changes I made.

I’m a quite beginner in ACES config :wink: I use the ACES 1.2 package since few years but never learn it really, I need to found good tutorial to learn it well.

Thank you

Matt

EDIT : I also not have the same Color space available than you at the end of your article (screenshot)

Here my current ACES 1.2 config :

ocio_profile_version: 2

search_path: luts
strictparsing: true
luma: [0.2126, 0.7152, 0.0722]

description: An ACES config generated from python

roles:
reference: Utility - Raw

Internal scene linear space

scene_linear: ACES - ACEScg
rendering: ACES - ACEScg

Distribution of colors in color picker

color_picking: ACES - ACEScg

Non-color data

data: Utility - Raw

For interop between configs, and to determine XYZ for rendering

aces_interchange: Linear ACES

Specified by OCIO, not used in Blender

color_timing: ACES - ACEScc
compositing_log: Input - ADX - ADX10
compositing_linear: ACES - ACEScg
default: ACES - ACES2065-1
matte_paint: Utility - sRGB - Texture
texture_paint: Utility - sRGB - Texture

displays:
ACES:
- ! {name: Standard, colorspace: sRGB}
- ! {name: sRGB, colorspace: sRGB}
- ! {name: DCDM, colorspace: Output - DCDM}
- ! {name: DCDM P3D60 Limited, colorspace: Output - DCDM (P3D60 Limited)}
- ! {name: DCDM P3D65 Limited, colorspace: Output - DCDM (P3D65 Limited)}
- ! {name: P3-D60, colorspace: Output - P3-D60}
- ! {name: P3-D65 ST2084 1000 nits, colorspace: Output - P3-D65 ST2084 (1000 nits)}
- ! {name: P3-D65 ST2084 2000 nits, colorspace: Output - P3-D65 ST2084 (2000 nits)}
- ! {name: P3-D65 ST2084 4000 nits, colorspace: Output - P3-D65 ST2084 (4000 nits)}
- ! {name: P3-DCI D60 simulation, colorspace: Output - P3-DCI (D60 simulation)}
- ! {name: P3-DCI D65 simulation, colorspace: Output - P3-DCI (D65 simulation)}
- ! {name: P3D65, colorspace: Output - P3D65}
- ! {name: P3D65 D60 simulation, colorspace: Output - P3D65 (D60 simulation)}
- ! {name: P3D65 Rec.709 Limited, colorspace: Output - P3D65 (Rec.709 Limited)}
- ! {name: P3D65 ST2084 108 nits, colorspace: Output - P3D65 ST2084 (108 nits)}
- ! {name: Rec.2020, colorspace: Output - Rec.2020}
- ! {name: Rec.2020 P3D65 Limited, colorspace: Output - Rec.2020 (P3D65 Limited)}
- ! {name: Rec.2020 Rec.709 Limited, colorspace: Output - Rec.2020 (Rec.709 Limited)}
- ! {name: Rec.2020 HLG 1000 nits, colorspace: Output - Rec.2020 HLG (1000 nits)}
- ! {name: Rec.2020 ST2084 1000 nits, colorspace: Output - Rec.2020 ST2084 (1000 nits)}
- ! {name: Rec.2020 ST2084 2000 nits, colorspace: Output - Rec.2020 ST2084 (2000 nits)}
- ! {name: Rec.2020 ST2084 4000 nits, colorspace: Output - Rec.2020 ST2084 (4000 nits)}
- ! {name: Rec.709, colorspace: Output - Rec.709}
- ! {name: Rec.709 D60 sim., colorspace: Output - Rec.709 (D60 sim.)}
- ! {name: sRGB D60 sim., colorspace: Output - sRGB (D60 sim.)}
- ! {name: Raw, colorspace: Utility - Raw}
- ! {name: Log, colorspace: Input - ADX - ADX10}
None:
- ! {name: Standard, colorspace: Raw}

active_displays: [ACES, None]
active_views: [Standard, sRGB, Non-Color, DCDM, DCDM P3D60 Limited, DCDM P3D65 Limited, P3-D60, P3-D65 ST2084 1000 nits, P3-D65 ST2084 2000 nits, P3-D65 ST2084 4000 nits, P3-DCI D60 simulation, P3-DCI D65 simulation, P3D65, P3D65 D60 simulation, P3D65 Rec.709 Limited, P3D65 ST2084 108 nits, Rec.2020, Rec.2020 P3D65 Limited, Rec.2020 Rec.709 Limited, Rec.2020 HLG 1000 nits, Rec.2020 ST2084 1000 nits, Rec.2020 ST2084 2000 nits, Rec.2020 ST2084 4000 nits, Rec.709, Rec.709 D60 sim., sRGB D60 sim., Raw, Log]

Hi Matthieu,

another non native English speaker here :slight_smile:

I am not familiar with the internals of the OCIO configs. I am merely a user.
I would point you to @Finn_Jager, as he created and modified a lot of OCIO configs to my knowledge.

Best regards,

Daniel

Hey Matthieu,

Perhaps you mean use the same source files as those that come with ACES 1.2?
The ACES 1.3 config uses OCIOv2.x where all the neccesary color spaces are built into OCIO and the .config file itself. The colorspaces and display spaces aren’t dependent anymore on external LUT files. The .config file is really all you need from now on. You can pick the CG config if you’re only doing CGI or the Studio config which includes all the available color spaces that come with that release (cameras etc).

If you’d like to transfer some of the things you’ve done in your ACES 1.2 config like changing the roles you can do so with a text editor. However the color space list will be different as the new OCIO format separates displays from color spaces among other differences. For CG content creation this shouldn’t be an issue I think, as there won’t be scenarios where you’d want to use say “Output - sRGB” as an input space in a material.

Hope that helps.

1 Like

Hi Daniel, Hi Shebbe,

Daniel : Oki, I’ve check and put my fingers inside the OCIO config. I remapped some name like to “Standard” for Blender for the “ACES 1.0 - SDR Video” put the Blender params and it works great. The only thing a quite boring, ACEScct is like the old “Matte Paint 8bits” and not found the “linear_to_sRGB” for the HDR files so I use Raw and seems close but if someone know what is the old “linear_to _sRGB”, I got it. I need also to remap some name to have something close to the name of the ACES 1.2.

Shebbe : Yes it’s working, I used them from ACES 1.2. Great news for all is in the OCIO file now. I use the CG one and for camera, I convert them in Davinci Resolve to EXR or png so I have the “studio profile” directly in Davinci Resolve. Thank also for all the others tips you gave to me. As I found the “Output - sRGB” that I used for 8bits is ACEScct in ACES 1.3, solved my issue.

Right now, my workflow from Substance Painter to Blender, Nuke, Davinci Resolve is optimal and the color is the same, including in the Fusion page using ACES 1.2 as view display + the gamut compression.

Do you have some ressources to learn the OCIO 2.0 / ACES 1.3 format ? I want to learn it and have the possibility to change name and customize it more accuratly than now :wink:

Thank you for all your answers and sorry for the long delay to answer you, my week was heavy on duty (lighting on two movies and one using UE 5.1 and I’m beginner under UE 5.1).

Have a nice weekend,

Matt

1 Like

Hi, i wanna configure blender to use ACES
i must only modified che config.ocio file? or i must download some luts or extra file to put inside color managment folder of blender?

And
 i already try to replace the default studio-config-v2.0.0_aces-v1.3_ocio-v2.2 inside blender, but now Agx filmic and all other color of blender desappear
 I want integrate ACES, not replace all with ACES. To make this i can copy the correct string of studio-config-v2.0.0_aces-v1.3_ocio-v2.2, and paste inside the OCIO blender default file?

Hope you understand my english
Thanks

Hi,

I set the OCIO environment variable and start Blender with a OCIO config of my choice.
https://www.toodee.de/panicpost/learning-to-use-aces/1-blender/1-4-1-blender-3-2-alpha-ocio-v2-beta/

But there is a config available that does what you are looking for I think:

Best
Daniel

1 Like

Hey William, welcome!

Mixing ACES and Blender Filmic/AgX is not possible if you want a true ACES pipeline because the Blender config uses a different rendering colorspace.

What you could do however is decide to keep the full blender config and add the ACES display transforms on top.

I once set that up for someone else with the same request using the LUT based ODT so a few extra files are required but here you can download that config.

It does the same as the config from the video @TooDee posted but mine only has the ACES sRGB ODT added and nothing else. Feel free to use it if it works for you.

I must say I am not a fan of mixing too many image pipelines into one OCIO config.
I like to decide beforehand which system I want to use and use AgX or ACES, depending on the task I have to do.

Hi, yes i see you OCIO config and i think is good for me
Maybe I explained myself badly
I don’t want to use ACES and Agx (for example) in the same pipeline, but I would just like to have them both inside blender so that on 1 project I can work in ACES, and maybe another different project for another client, I can use another color filter

1 Like

I would recommend to use batch script (or shell script on linux) to start your software. That’s work exactly best for your use case of “switching configuration between client projects”.

Batch files will allow you to set temporary environment variables before starting the software, and they will be cleared when the software exit. So you never pollute your global system state.

Here is for example one of my old batch script for Blender :

Blender_ACES.Cave.bat

set "OCIO=F:\softwares\color\library\aces\configs\CAVE_cgAnim_slim_aces_ocio_config\CAVE_cgAnim_slim_aces_ocio_config_v002-bd8kee\CAVE_cgAnim_slim_aces_ocio_config_v002\config.ocio"

start "" "F:\softwares\apps\blender\blender-2.93.0-windows-x64\blender-windows64\blender.exe"

With this I will only get the ACES OCIO config if I launch blender with that batch script, if I open Blender regularly (or by double clicking a blender file) I will get the default Blender config.

As a bonus you can configure much more with that batch script:
https://docs.blender.org/manual/en/latest/advanced/command_line/arguments.html#environment-variables
So each of your project batch script is customized to best fit your project needs.

1 Like

Hi,
I thought it worked correctly using OCIO from genco Uney’s video
 But now I notice that the texture reading controls are missing.

Different instead the standard configurator that you download from the official OCIO site. Here you can find all the colospaces needed to read the textures in ACES. Only that using this one, I lose the possibility of having Agx and all the others


Maybe I’m doing something wrong? Do I have to activate them somehow? Or is it not necessary because they are active by default? I don’t understand, they should be called “SRG-texture and Raw” and not “RGB and Non-Color”

Did you ask “Genco Uney” why the srgb-texture IDT is missing?
Why not stick to the official OCIOv2 config? That one works fine.

Hi everyone, it’s me again, sorry

I have another very important question
 I also tried with OCIO official downloaded from this site
 I have a problem with the diffuse map (DIF).
Using Blender’s node wrangle, when I select a color map, it imports it using the “sRGB - Texture” color space.
The problem is that when I launch the render with the debug function active, it tells me that the 4K 8bit map weighs 128mb, instead it should weigh only 64mb (like the Normal, which loads correctly). I don’t understand why using Aces the DIF weighs twice as much as Blender Standard. Is there a way to solve it or is it a feature of ACES? Blender already has problems with full Vram, if then all the DIFs weigh double we’re in trouble :slight_smile:


Here the screenshot
 the textures are 4K 8bit, and must take only 64mb, but with ACES, take 128mb


And this is the same but with standard Agx of blender
 testure weight is 64mb
 this is correct