When I first started rendering in Houdini, I was so excited to have a finished product that I would just want to share it with the world. And that meant bringing the rendered animation frames into my personal favorite editor, Davinci Resolve, adding some color and just rendering out a small video clip that I could easily share.
Well, if you are reading this article, you most likely have met the same fate I did when importing your rendered frames… WTF happened to the colors!?
I will admit, this issue perplexed me for a few months and I always tried something new with every animation. I read a forum post telling me to change some LUTs inside of resolve and others telling me to adjust gamma. The results were inconsistent and I grew increasingly frustrated. So I went to the SideFX forums and finally asked.
The answers received, albeit disappointing to me at the time, simply said, “your gamma is wrong and you should consider ACES in your workflow.”
While that wasn’t the most detailed answer I was looking for, it helped me figure out the essentials so that way I can now share the detailed explanation I wish I had with you. And let me first start out by saying that it involves the use of ACES to bridge color differences. And if you don’t know what ACES is, don’t stress it. I am still pretty new to it as well but I would love to share what I have learned.
Really Quick Overview Of ACES
ACES is actually a pretty big deal for both VFX and just film in general. Learning about this changed my entire workflow for every shot. So what is ACES? It’s an acronym for Academy Color Encoding System.
All in all, ACES is a color space like sRGB and Rec709 EXCEPT where sRGB and Rec709 limit color ranges, ACES expands them allowing for far more control and a level playing field for all elements being used in your timeline.
All in all, some incredibly talented developers in Hollywood developed an opensource color profile that helps bridge color gaps (for cameras, software renders etc.) while offering consistency and creative control.
And there you have it.
* ATTENTION *
Before you begin, please note that this installation process only applies to Houdini 18.5 and below. If you have Houdini 19 and up, follow the guide here. As for Davinci Resolve/Fusion, nothing has changed to much in regards to color space.
Part 1) Implementing ACES To Houdini
For the sake of this tutorial, we will be setting up ACES 1.0.3 which works beautifully with Davinci Resolve (I will also share a link to help you set up 1.1 if you are feeling feisty).
First, let’s head to OpenColorIO.org’s website and head to there ‘downloads’ section. Once there, at the very top, yo should see an option to download the ‘Sample OCIO Configurations‘ with 2 links, first one being a .zip and the other a .tar.gz. Click the .zip folder to download it.
Next, unzip the folder and once unzipped, look inside the folder and we are looking for a specific folder called ‘aces_1.0.3‘. Once located, we need to copy / relocate this folder to somewhere on your machine so that you can reference this folder in the future. For me, I added this to my D:/ drive and relabeled it to ‘__ACES_1.0.3’.
Now that you have your ACES folder, let’s link it up to Houdini. To do this, you need to locate your Houdini environment file named ‘houdini.env‘. By default this file is located at:
Once you have it located, you will need to open this in a code editor. For Windows, you can use Notepad, Mac has TextEdit and Linux has… to be honest, I am not sure but you could download a free app called Atom which will work perfectly.
Now inside the code editor with the houdini.env open, we need to adjust some Houdini environment variables. The open file should look something like this:
# Houdini Environment Settings
# The contents of this file are read into the environment
# at startup. They will override any existing entries in
# the environment.
# The syntax is one entry per line as follows:
# VAR = VALUE
# Values may be quoted
# VAR = "VALUE"
# Values may be empty
# VAR =
# HOUDINI_NO_SPLASH = 1
You may have a few other bits of code but don’t worry about those. But what we need to do is use this file and add a snippet of code that points to our aces_1.0.3 folder, and more specifically, the config file we just stored (located inside the folder). To do that, we add the following to the bottom of the .env file:
OCIO = /path/to/aces_1.0.3/config.ocio
Of course, all paths will look different based upon your operating system but I am sure you understand. And please make sure you do not lead the line of code with a ‘#’ otherwise it will not work. The #’s signify a comment and will not run the line of code and are for human readers only.
Now that we have that done, we should be good to go and able to start up Houdini.
Part 2) Rendering In Houdini For Davinci Resolve / Fusion
Believe it or not, that was the hardest part to the whole process. It is all down hill from here. First up, you will notice that when looking at the Houdini viewport, where you originally had the exposure / contrast / bright shift, you now have access to ACES and the desired color space output for the viewport. I tend to set mine to Rec709 to give me an idea of what to expect in Davinci Resolve. Don’t worry though, this doesn’t have anything to do with the actual renders.
Mantra rendering is rather simple. Like normal, adjust the settings to your liking (physically based rendering, samples etc.) but one of the main tweaks you want to make is the ‘Variance Color Space‘. You will want to make sure that is set to ‘Linear‘. Aside from that, render your normal .exr sequence and we will move on to the next step.
Karma is another easy one (and this is only from what I have read since I still use Mantra since Karma is still in Beta as of me writing this). Luckily for us, the OCIO config is doing the major lifting for us.
Simply create a Karma LOP, navigate to the ‘Image Output‘ and inside of the ‘Filters‘ tab, you will see an OCIO color filter. Add an OCIO filter and set it to the Beauty channel (C), render and you should be good to go!
If there is more to this, I am totally open to learning more about Karma. I will be the first to admit, I am far from being a 3D color/render master and am always open to learning.
Part 3) Davinci Resolve
So we have our sequence! That is always an incredible feeling and with that feeling, we need to finish out strong meaning no mismatched color.
Drag your sequence into Davinci Resolve and go to the Project Settings (bottom right cog icon) and navigate to the Color Management tab. Set the Color Science to ACEScc and then set the ACES Version to ACES 1.0.3. Then, set the ACES Output Device Transform to Rec709 (we wont touch the ACES Input Device Transform). If you have any other desired output transform, feel free to use it instead of the Rec709 as Rec709 tends to be a very common output, similar to sRGB.
Now normally, Davinci Resolve is pretty incredible at detecting the incoming footage and applying the proper ACES Input Transform automatically but just to be safe, I want to teach you how to manually apply Transforms to individual clips. With that said, let’s drag our rendered .exr sequence onto the timeline and then switch to the Color tab. Once in the Color tab, right click your sequence and look for the ACES Input Transform option and choose ACEScg.
Please also know that you can add ACES transforms too your footage as well to further help the color consistency.
And there it is! You now have managed consistent color between Houdini and Davinci Resolve.
Part 3.5) Fusion
If you are planning on doing some compositing in Fusion, you will have a slight workflow difference but none the less important to match colors for making the cg elements blend with your footage.
To start, add a Loader node and load your rendered .exr image sequence. Once loaded, hit SHIFT + SPACE to search for the OCIO Color Space node. There are three parts to this node that we need to adjust.
First, we need to locate our same OCIO.config file that we linked to in part 1 except this time, we have a file browser to use. So, load up the OCIO.config file and then let’s move on to setting the color transforms.
Just like in Davinci Resolve, set the ‘Source Space‘ to ‘ACEScg‘ and then the ‘Output Space‘ to ‘Rec709‘ and there you are! Color consistency again!
Bonus – Installing ACES 1.1
If you want to use ACES version 1.1, simply download the config files from this Github and follow all of the previous steps.
Part 4) Conclusion
Color is a huge deal when it comes to video and becomes and even bigger deal when you spend hours in Houdini working on particle shading only to see it look entirely different in Davinci Resolve. I know this information was probably out there and I must have just missed it but I aim, with this tutorial, to put all of that valuable information into one place to help you finalize your animations / simulations by adding them to your footage or show reel.
If you have made it this far, thank you for your time and I hope this helped.