Acescg working space in Unreal

One of the new additions in Unreal 5.1 that might not have gotten the same spotlight as shinier features is the ability to use Acescg as actual working color space for projects. Let’s move on and see how we can get it going.

From the top menu: Edit > Project Settings > Search for Working Color

The relevant settings are located in Project settings, inside the Rendering subsection of the Engine settings. If you’re like me and sometimes gets confused between Editor Preferences and Project Settings when looking for something, remember that this configuration will affect the look to your end-users as well, so it’s not a quality of life editor convenience thing.

From there, change the working color space from the default sRGB to ACES AP1/ACEScg. This will be like working with an Acescg pipeline that you might be familiar from other applications. Still, there more settings outside the Project Settings that we will have to adjust. By that I mean you will know something is wrong as soon as you look at the viewport again:

The oversaturated image and the distinct blue hues is the telltale sign of your Acescg working space not being configured correctly.

You can close the Project Settings windows now, cause the next stop is the Plugin window. Search the OCIO plugin, which is usable despite the Beta label. Activate it and restart your editor.

This will allow you to create a new type of asset: OCIO configuration. You can find in the create new asset in the Content browser under Miscellaneous > OpenColorIO Configuration. Go ahead and create one. It’s a good idea to create in a folder containing other global assets in your project, as this will hold the configuration for your entire project.

Inside that asset, you have to point to your OCIO config on disk, which you likely have downloaded at this point. Then you set your desired view spaces and color spaces for your project. Make sure to add only the ones you’re actually going to use.

Example of configuration inside the OCIO asset. This is project dependant.

What you add in each field depends on your project, but some general guidelines:

  • Unreal renders everything internally in linear space. So adding Utility-Linear-sRGB will be a given.

  • If you want to render frames with Movie Render Queue and composite later in an Acescg compliant pipeline, add Acescg color space and remember to set it as your colorspace before rendering your frames.

  • Add the color space you’ll working in your display view. For most common monitors this will be sRGB. Adding wider gamut options like DCI-P3 will require a monitor that can display those extra colors.

After saving your config, you can choose it in the viewport. To make everything display as before, set the first option to Utility-Linear-sRGB(Unreal internal space) and the second option with desired display target(in my case, sRGB).

We got the correct colors back while working in Acescg working space.

There’s another pack of settings that enabling the Acescg working space will enable that’s a big deal, and is related to textures. Open the texture editor and look for the Source Color Settings in the Advanced subsection.

This give you more options for setting the incoming color space of a texture instead of the usual binary sRGB/Linear toggle. This way you can import textures encoded is Acescg and have them be displayed correctly.

This menu can also be used to fix editor textures that might be displayed incorrectly after setting Acescg as the working color space. Old HDR cubemaps in the engine are prone to de displayed in incorrectly. If you notice that an subeditor like the Static Mesh Editor sky HDR has crazy saturated colors, change the image back to sRGB space.

Change legacy images back to sRGB/Rec 709 working space if you notice oddities.

That’s it! Hopefully you’ll remember to set this at the beginning of your project so you can have a wider gamut of colors at your disposal, or just be compliant with your Acescg pipeline and achieve piece of mind.

See you next mission.

Previous
Previous

Installing Proxmox on eMMC Devices

Next
Next

Incremental Backups with Subversion