AgX in Corona

Thank you very much for your answer Piotrus. This clarifies these tone mapping things that are still confusing for me

Another example of using AgX:
Resolve AgX version (DCTL) married to look from famous ARRI K1S1 lut.
mP_Reinhard_BT709_2_arri_K1S1_look_AgX_DCTL_BT709gamma22.cube (13.5 MB)

Hi Marcin, folks/devs,

We are typically using your fantastic AGX ToneMapping instead of ACES for almost everything these days, from this method, as it seems to have a much more pleasant and predicable rolloff for the highlights while preserving contrast and colour. The issue we’re facing is that it doesn’t seem to work properly with ToneMapControl when you set it to not affect the map. It seems to affect the exposure and crush certain tones and mess around with the contrast. I see there’s a warning for this on the corona website “While the Corona Tonemap Control Map works fine most of the time, there are some special cases where it may fail, for example: using some LUTs, using extreme tone mapping operator values, setting the Contrast value to zero.”

  • Is there any workaround for this to get 1:1 result with the underlying map, like we get with ACES workflow?
  • Is there a simplified single-LUT version of this we can use, which may or may not help?

Some notes:

  • corona 11 HF 2, max 2024
  • base map is an SRGB photo loaded into coronabitmaploader, zero colourcorrection, just the pure map
  • it’s then piped into tonemapcontrol with all the checkboxes disabled
  • using AGX workflow method from here: https://forum.corona-renderer.com/ AgX in Corona - it results in 2 x LUTS being loaded into the coronacamera tonemapoverride. It’s the second (lower) of the two LUTs that’s breaking things (or rather being broken by the tonemapcontrol). And I believe we have the correct Logarithmic settings
  • contrast is at 1.0, or 1.5 it doesn’t matter (but it’s not at 0.0 FYI, which we know can break things)
  • we’re aware of the IR tone mapping bug where you need to re-start the IR each time you affect things like exposure, tone mapping, LUTS etc. which we’ve done, so this isn’t the issue (although devs, any news on a fix for this? it’s very annoying and easy to forget!). It happens also in production rendering.

Example below:

Thanks for any help!

@alexyork

skip the Corona Tonemap Control and just transform the backplate into your rendering space, linear rec709 in this case.
for this you need to reverse the AgX Punchy display transform. lin rec709 backplate will get back to AgX Punchy via frame buffer corrections. if you need to colour correct the backplate in Max do it in lin rec709 so its nice and tidy.

you need the original AgX ocio config from Troy Sobotka: GitHub - sobotka/AgX: There Be Kraken and Dragons ¡ GitHub

attached screenshot shows conversion done with VRayOCIO node, you can do this with Affinity/Photoshop/whatever else. 3dsMax 2024 setup with this AgX OCIO file should be able to convert it too.
there will be slight differences as luts I made ale limited in precision by Corona’s cineon log conversion in lut layer.

you can actually also try these luts. made for Vantage so you will always end up with transfer function difference srgb vs 2.2.
I also never tested Corona’s linear option in lut layer so no guaranties.
instead of log - use Reinhard curve (h compression 999 in Corona) - should be more precise compared to old double lut setup.
06_AgX-Punchy_gamma22.3dl (5.24 MB)
06_AgX-Punchy_rec1886.3dl (5.24 MB)
06_AgX-Punchy_srgb.3dl (5.24 MB)

Ok awesome… ! Thank you. A lot to digest and figure out here so I might fire you some DMs when I get time to implement and test.
Cheers,

sure, no worries.

I recently discovered this AgX thing and have tried using the highlight compress 999.0 method along with the 06_AgX-Punchy_srgb.3dl.
The results are incredible!

it is a total game changer. I didn’t realise how much I needed this until I tried it.
Can’t believe corona doesn’t have this natively yet.

Thank you very much for sharing this.

I understand the previous method involved a double LUT setup and you mentioned this current approach is more precise.
Out of curiosity, have you updated the workflow again since your last post? Also, I have been using the punchy version you shared, but I was wondering if you also have the AgX base model available for this setup?

Thanks again!

no updates as OCIO is fairly well supported across the board now.
06_AgX-Punchy_srgb.3dl comes from a lut pack made for Vantage before OCIO support - AgX Base Contrast was never a part of it as it was not a “display/deliver ready” view transform (it did not make much sense for Vantage to include it).

please keep in mind that using a view transform like this original AgX form pretty much limits you to rec 709 displays (srgb) - original AgX achieves “celuloid film-like” desaturation of highlights by clipping the most saturated parts of rec709 colour space but real life colours are much more “colourful” than rec709/srgb. in 2026 you should be able to create images in P3 colour space - already a standard for phones and tvs I would argue. even Instagram is hdr P3.

attached below is a screenshot showing how much is lost buy rendering and displaying in rec709/srgb - a few years old iphone capturing a scene in rec2020 colour space (just tiny bit narrower than ACEScg). nothing special - not laser swords but peppers and legos - notice how much of it is lost in “srgb workflow”:


Hey, thanks for your reply!
I didn’t know anything about color management before this, so I’m trying to wrap my head around it. my max workflow has always been on gamma2.2 until today.

I tried setting up Sobotka’s AgX in max (v2026) with corona (v14), but I can’t seem to get it right. I’m getting terrible results with crushed blacks and blownout highlights at the same time. vanilla acescg seems to work, because it looks just like gamma 2.2 +aces ot setup, which I don’t like.

I have no clues on how to get that AgX film-like look without breaking the corona VFB output. Any specific settings you recommend?

Many thanks in advance

this config contains AgX Base and Punchy:
https://forum.corona-renderer.com/ Alternative OCIO config for 3dsMax. ACES 2.0 and a few other view transforms. #msg230388

Hey Marcin,

Catching up on this as it’s been a while. Is that (or is there) the latest single-LUT AGX setup available for both max/corona and also for Vantage, by any chance? Trying to get parity between the two, and via a single LUT setup.

Cheers!

yes, this would be 06_AgX-Punchy_srgb.3dl (if you are using this lut in Corona you need to add gamma 2.2 to sRGB curve transform at the end to match Vantage or Max with this ocio config: Alternative OCIO config for 3dsMax and Maya (lite))

full Vantage lut pack here:

(as a product most likely obsolete - Vantage supports OCIO for some time now)

suggested way forward for all those using original AgX view transform (as at some point you will need to output to displays with more colours than srgb and this is impossible with original AgX):

OpenDRT by Jed Smith (open-display-transform/display-transforms/opendrt at main ¡ jedypod/open-display-transform ¡ GitHub) with contrast curve closer to original AgX.

single lut for use with linear rec709 renders with full highlight compression, output of the lut is gamma 2.2 rec709 display hence gamma operator at the end to counter frame buffer’s 2.2 view lut (also easier to use in other software).


mP_CoronaAgX_alternative_based on opendrt_02.3dl (5.24 MB)

Thanks for this, Marcin! Will check it out soon. Will be interesting to compare the results directly against AGX which has been such a success.

some comparisons (with Colorful look from OpenDRT Resolve DCLT) - in original AgX saturated colours might appear a bit too bright, to the point of being quite “digital” looking:

(frames from GitHub - sobotka/Testing_Imagery: Colourimetric Test Imagery ¡ GitHub)






Hi Marcin,

I came across your OCIO post on the chaos forum and i’ve been testing it lately with lovely results. Do you have a similar post in the corona forum?

It has paired great with real RGB values, I love the color representation and how light tends to look. As of now my only problem has been the color temperature in the corona lights but is easy to workaround by using the direct input and there just use the corona color picker temperature slider.

Hey @piotrus3333 this OpenDRT approximation tonemapper is incredible! Our renders are just so much more realistic. Lights fall-off feels very natural.

Only improvement I can suggest is that we’d like to use the full available power of AcesCG rendering color space. For mirrors, refractions, sunsets :sunrise: and delivering professional P3 files on OLED displays it makes quite a difference!

Is there any possibility to enlighten the community with the generation of a .3dl file for this wider gamut?

This would be definitely the new gold standard in Archviz. For rec.709 it already totally replaced 3dsmax and corona output display transforms.

Best!

to output ACEScg colours from Corona you need to create and use your own ocio config for 3dsMax - with all the display transforms, looks and luts you are using.

the sample OpenDRT-based lut is only for legacy gamma 2.2 3dsMax scenes.

free version of Resolve (Fusion page) is enough for creating luts.