Color Management

Generic forum to discuss Octane Render, post ideas and suggest improvements.
Forum rules
Please add your OS and Hardware Configuration in your signature, it makes it easier for us to help you analyze problems. Example: Win 7 64 | Geforce GTX680 | i7 3770 | 16GB
karl
OctaneRender Team
Posts: 396
Joined: Sun Oct 13, 2019 11:26 pm

funk wrote:
karu wrote:Please let me know if you think this could be made clearer because you're not the only one who's been unsure about these preferences.
OK count me in as one of the confused. I assumed we were waiting for ACEScg to appear in the "intermediate color space - octane" list.

So are you saying I can set it to octane = "ACES2065-1", OCIO = "rendering (ACES - ACEScg)" and it will look correct?

The tooltips make it sound like I must choose octane = "ACES2065-1", OCIO = "default (ACES - ACES2065-1)".

EDIT:
By the way, IF its OK to do so, rather than PM each other, could you post your discussions on the forum so we can all learn from them?
The two halves of the color space need to match - as the text on the color management preferences screen says, "it doesn't matter which color spaces are selected as long as they match". Please interpret that text literally - you can select any two options at all as long as they refer to the same color space and it shouldn't make any difference to the render output (regardless of whether you're outputting in ACEScg or any other color space). For the standard ACES OCIO config, you can either choose "ACES2065-1" and "ACES - ACES2065-1", or "Linear sRGB" and "Utility - Linear - sRGB".

The only reason the intermediate color space settings exist is so that Octane knows how to convert between a known color space and an OCIO color space. OCIO is only capable of converting from one OCIO color space to another OCIO color space; without the intermediate color space settings we wouldn't know which OCIO color space to start with.

Imagine that Octane produces text in either English or Spanish, and OCIO can convert text between languages, but those languages have hidden names like "foo", "bar" and "baz". You'd have to select one of those names that you knew was actually English or Spanish, and tell Octane its name, and whether it's English or Spanish (so you'd say e.g. "baz is Spanish" or "bar is English" or "foo is Spanish"). Then there would be a "bridge" so that Octane could produce text in any OCIO language (even if you don't actually care about English or Spanish). That's what the intermediate color space settings are.

Regarding the PMs between me and oddvisionary, we are only PMing to get our story straight; any useful information should remain here :)
User avatar
funk
Licensed Customer
Posts: 1206
Joined: Mon Feb 07, 2011 1:24 pm
Location: Australia

karu wrote:For the standard ACES OCIO config, you can either choose "ACES2065-1" and "ACES - ACES2065-1", or "Linear sRGB" and "Utility - Linear - sRGB".
Thanks karu :) I find the ACES preferences quite confusing so please bear with me.

I just did this test:

1) Color management OCIO prefs set to Octane = "ACES2065-1" + OCIO = "ACES - ACES2065-1". Imager OCIO view = "ACES: sRGB". I copied this to clipboard and pasted in PS.
2) I then changed OCIO prefs to Octane = "Linear sRGB" + OCIO = "Utility - Linear - sRGB". Imager OCIO view = "ACES: sRGB". I copied this to clipboard and pasted in PS again.

NOTE: Minor issue - While messing with other settings, I noticed that when changing prefs, you need to change the imager OCIO view to something else (eg none), then back to force the viewport to update correctly.

NOTE 2: Im only using PS so I can compare what the Octane viewport is displaying for 2 different settings, side by side. I could have used print screen + MS paint to do the same thing.

I was very surprised to see the output of both was identical. I think I'm starting to understand the Octane preferences a little better.
Using your analogy, my test just got Octane and OCIO speaking to each other in "English (1)" and "Spanish (2)", and the imager OCIO view can now translate to other "languages" in it's list (ACES: sRGB, ACES: Rec.2020 etc).

So I guess the main thing missing is conversion of input images/colors to ACES? And we can get around this by preconverting our images (in an external application) to ACES right?
(edit: what about sun/sky system colors? Don't they need some kind of conversion?)

Have I got this right?
Last edited by funk on Sun Nov 01, 2020 11:22 am, edited 4 times in total.
Win10 Pro / Ryzen 5950X / 128GB / RTX 4090 / MODO
"I am the resurrection, and the life: he that believeth in me, though he were dead, yet shall he live" - Jesus Christ
oddvisionary
Licensed Customer
Posts: 7
Joined: Fri Sep 14, 2018 2:47 am
Location: France

Hi, thank you for your replies, karu.
The intermediate color space allows Octane to convert between built-in color spaces for which it knows all the details (chromaticities etc.), and OCIO color spaces for which it knows nothing except the name (as a string). The intermediate color spaces function as a "bridge" for these conversions - to convert from built-in color space A to OCIO color space B, Octane first converts from A to the "Octane" side of the intermediate color space (using, for example, a 3x3 matrix), and then uses OCIO to convert from the "OCIO" side of the intermediate color space to B. The conversion in the other direction is similar (but Octane doesn't do this yet). Without the two halves of the intermediate color space being set, Octane would have no way of knowing that the "Utility - Linear - sRGB" OCIO color space (for example) matches what Octane calls linear sRGB.
@karu - Thank you for the explanation. Although it is still too vague for me to clearly understand it. What do you mean by ❝"built-in color spaces"❞? What does this refer to in Octane? ❝Octane would have no way of knowing that the "Utility - Linear - sRGB" OCIO color space (for example) matches what Octane calls linear sRGB❞ in what context? The utility is mainly used as IDTs at texture file level, which Octane does not support yet at the moment.
whatever color space you put in is what you get out - but Octane needs to know the specific details of at least one OCIO color space because the renderer produces absolute wavelengths of light.
@karu - That's correct but only valid for input textures. All RGB renderers (AFAIK at least) are hardcoded to sRGB/rec709 primaries for the rest, such as spectra features (mostly referring to lighting). In a context without OCIO and any matrix color transform available.
The only options available for the "Octane" half of the intermediate color space are linear sRGB and ACES2065-1, because this list only needs to cover enough color spaces so that any OCIO config a user would want to use should always contain at least one color space that matches one of them. ACEScg is not included because I don't believe there are (or should be) any practical ACES OCIO configs that do not include ACES2065-1 (plus, including ACEScg in the list may contribute to the mistaken assumption that it's somehow more correct than ACES2065-1 in this context).

The color management preferences page contains the text "For the intermediate color space, ensure both selections represent the same scene-linear color space (it doesn't matter which color spaces are selected as long as they match).", and both the intermediate color space boxes have tooltips that should be helpful. Please let me know if you think this could be made clearer because you're not the only one who's been unsure about these preferences.
@karu - I think it's important to understand what the ACES 2065-1 Color space is and for what: It is an RGB, AP0 based (Ultra Wide Gamut with non-physically realizable) primaries, scene linear color space, that encompass all other color spaces (and the CIE chromaticity diagram entirely). It has been developed to be future-proof, decades or centuries ahead of us. It is only an interchange and archival format and should never be used as a working space (I don't even think a spectral renderer can break this "rule" as far as I can understand spectral rendering). Digital intermediate facilities also work with ACEScc and ACEScct (also ACESproxy) which are AP1 based, like ACEScg and all being working space. I've mentioned that part in my documents and it is very important to not overlook it. This is where my "incorrectly implemented" comes from.

• Side note, ACEScg has also non-physically realizable primaries but is less of an issue compared to the ACES color space (2065-1 AP0) and I could also mention that BT.2020 is the closest to ACEScg. From what Thomas Mansencal (Color developer, @Weta Digital, working closely on ACES) has explained, ACEScg encompasses P3, which apparently requires non-physically realizable primaries, to do so.
• Side note 2, ACES has flaws which I mentioned in my previous message I think, and certainly in my documents. ACES 2065-1 AP0 is only making it worse than ACEScg (I invite you to refer yourself to my private documents for more information).
In short using icc and photoshop as before for still image, for now.
@jimho - TL;DR - Avoid Photoshop for CG image data handling and color pipelines.
I copied this to clipboard and pasted in PS
@funk - Do you know, when doing so, what do you copy to clipboard? Is it a PNG? 8bit or 16bit? Integer (2.2) or linear(1.0)? Your approach should be that you export everything to EXR in a proper professional compositing software like Nuke or Fusion. Your Photoshop workflow will only make it more difficult than it should be.
I cannot stress enough how important it is to use proper color pipeline tools that are designed for CGI, VFX and motion-picture.
By the way, IF it's OK to do so, rather than PM each other, could you post your discussions on the forum so we can all learn from them?
@funk - I'm open to share everything but by avoiding as much as possible the misinformation. This is why I prefer to discuss this privately first. Keep in mind that there will be an official and updated Octane documentation in the near future.
We can get around this by pre converting our images (in an external application) to ACES right?
@funk - Correct, but that workflow should not be considered as a solution. Only temporarily. You can use Affinity Photo, BMD Fusion, Foundry Nuke ( which all support EXR and OCIO natively), or this tool https://gumroad.com/l/pycocs for windows only (at the moment) as well as many other tools or ways.
Last edited by oddvisionary on Fri Oct 30, 2020 2:32 pm, edited 1 time in total.
User avatar
funk
Licensed Customer
Posts: 1206
Joined: Mon Feb 07, 2011 1:24 pm
Location: Australia

oddvisionary wrote:
I copied this to clipboard and pasted in PS
@funk - Do you know, when doing so, what do you copy to clipboard? ... Your approach should be that you export everything to EXR
I only did it this way to be sure I was seeing the same thing in the Octane viewport, since Octane has no render history like V-ray (with an A/B slider to compare 2 images).
When I adjusted the prefs, the result looked the same, so I pasted both into PS to be 100% sure my eyes weren't fooling me, thats all.
Octane's clipboard command copies the 8 bit tonemapped image you see on the screen.
oddvisionary wrote:
By the way, IF it's OK to do so, rather than PM each other, could you post your discussions on the forum so we can all learn from them?
@funk - I'm open to share everything but by avoiding as much as possible the misinformation. This is why I prefer to discuss this privately first.
No problem
oddvisionary wrote:
We can get around this by pre converting our images (in an external application) to ACES right?
@funk - Correct, but that workflow should not be considered as a solution. Only temporarily.
Yes I understand. I definitely don't want to be forced to pre convert my textures externally :)
Win10 Pro / Ryzen 5950X / 128GB / RTX 4090 / MODO
"I am the resurrection, and the life: he that believeth in me, though he were dead, yet shall he live" - Jesus Christ
jimho
Licensed Customer
Posts: 271
Joined: Tue Aug 21, 2018 10:58 am

@funk,
if you are using photoshop,
we do not need to care about and touch OCIO and ACES, they are more than necessary, maybe animation softwares need them.

Supermicro 4028GR TR2|Intel xeon E5 2697 V3| windows 10| revit 2019 |Titan V+ Quadro GV100+RTX 2080 Ti
User avatar
funk
Licensed Customer
Posts: 1206
Joined: Mon Feb 07, 2011 1:24 pm
Location: Australia

jimho wrote:@funk,
if you are using photoshop,
we do not need to care about and touch OCIO and ACES, they are more than necessary, maybe animation softwares need them.
You're misunderstanding why Im using photoshop in this instance. Its just so I can compare 2 images from the octane viewport "side by side".

I could have used print screen + MS paint, or any other application that allows me to paste the Octane clipboard.
Win10 Pro / Ryzen 5950X / 128GB / RTX 4090 / MODO
"I am the resurrection, and the life: he that believeth in me, though he were dead, yet shall he live" - Jesus Christ
oddvisionary
Licensed Customer
Posts: 7
Joined: Fri Sep 14, 2018 2:47 am
Location: France

jimho wrote:@funk,
if you are using photoshop,
we do not need to care about and touch OCIO and ACES, they are more than necessary, maybe animation softwares need them.
Hi @jimho,

ACES is definitely not necessary, but a proper color pipeline is mandatory if you want to ensure your image is not broken in the process and at delivery.
OCIO (also OIIO - OpenImageIO) are "tools" to help in that regard, while ACES is an image "(Academy) Color Encoding System - A.C.E.S.".

OIIO, OCIO and ACES are used in many different industries. From CGI/VFX to Motion pictures and photography. If you work for Netflix, you may be requested to work with ACES and their Color Pipeline Guidelines and Technical Requirements, for instance.

Best
jimho
Licensed Customer
Posts: 271
Joined: Tue Aug 21, 2018 10:58 am

We majorly work on still images for architectural rendering and sometimes animation,
Photoshop is enough for us and icc working well with ps for color management purpose
for animation color grading we use Davinci Resolve

Supermicro 4028GR TR2|Intel xeon E5 2697 V3| windows 10| revit 2019 |Titan V+ Quadro GV100+RTX 2080 Ti
karl
OctaneRender Team
Posts: 396
Joined: Sun Oct 13, 2019 11:26 pm

Sorry all for the delay, I was away on paternity leave :)
funk wrote: NOTE: Minor issue - While messing with other settings, I noticed that when changing prefs, you need to change the imager OCIO view to something else (eg none), then back to force the viewport to update correctly.
I'm aware of this issue and will look into it.
funk wrote:I was very surprised to see the output of both was identical. I think I'm starting to understand the Octane preferences a little better.
Using your analogy, my test just got Octane and OCIO speaking to each other in "English (1)" and "Spanish (2)", and the imager OCIO view can now translate to other "languages" in it's list (ACES: sRGB, ACES: Rec.2020 etc).
That's correct. It doesn't matter what language Octane and OCIO speak to each other in (i.e. it has no effect on the output), as long as they're both speaking the same language. You can interchange in ACES2065-1 or linear sRGB (as long as your OCIO context supports both), and you should get the exact same final result.
funk wrote: So I guess the main thing missing is conversion of input images/colors to ACES? And we can get around this by preconverting our images (in an external application) to ACES right?
Yes, the main thing missing for full ACES support is the ability to assign color spaces to input images/colors. You can't get around this by preconverting images to ACES, because when converting images to the internal spectral coefficient representation all input images are currently assumed to be using sRGB primaries. Preconversion may give you something that looks OK but is not correct because you can't yet tell Octane that the images are ACES.
funk wrote:(edit: what about sun/sky system colors? Don't they need some kind of conversion?)
The daylight models (except for the "Octane" model) are inherently spectral so are unrelated to RGB color spaces.
User avatar
funk
Licensed Customer
Posts: 1206
Joined: Mon Feb 07, 2011 1:24 pm
Location: Australia

karu wrote:Sorry all for the delay, I was away on paternity leave :)
Congrats! :)
karu wrote:Yes, the main thing missing for full ACES support is the ability to assign color spaces to input images/colors. You can't get around this by preconverting images to ACES, because when converting images to the internal spectral coefficient representation all input images are currently assumed to be using sRGB primaries. Preconversion may give you something that looks OK but is not correct because you can't yet tell Octane that the images are ACES.
After playing around with ACES some more I realised this too. Thanks for confirming.

So this is only an issue if we are working with others who already have their images preconverted as ACES. We would have to convert those images to sRGB externally first.
Win10 Pro / Ryzen 5950X / 128GB / RTX 4090 / MODO
"I am the resurrection, and the life: he that believeth in me, though he were dead, yet shall he live" - Jesus Christ
Post Reply

Return to “General Discussion”