ACEScg in V-Ray

This guide is mainly for 3ds Max but also valid to all 3D DCCs where V-Ray is supported.

3ds Max does not have an internal color management system besides the standard and regular Linear-sRGB. V-Ray provides OCIO support directly via the V-Ray VFB (Frame Buffer) and as a map (node) to convert “on the fly” non-ACES assets (HDRI, textures etc) into ACEScg (with some known performance issue).

Bellow you will find all the steps needed for the correct setup in V-Ray for 3ds Max.

First, load the official ACES OCIO config file. Disable tonemapping and sRGB curve from the V-Ray VFB
• Input color space : ACEScg (AP1 primaries, do not use ACES AP0!)
• Display Device : ACES (you cannot change it normally)
• View Transform : ACES_output_Rec709 or sRGB for instance. This is just for “monitor preview purposes”. Your final render will be exported in linear EXR ACEScg.
VRaysRGB_disable

ACEScg for your image assets: LDR (textures) and HDR images (HDRIs)
• 1. Use the VRayHDRI node to import your asset textures :warning: import as linear! Otherwise V-Ray will produce a “double sRGB” to your texture.
• 2. Connect the VRayHDRI node into a VRayOCIO node
• 3. Inside your VRayOCIO node, load the OCIO config file
• 4. Select the correct IDT for your image file.

Use of OCIO nodes (e.g. VRayTexOCIO) for IDTs (conversions) is not recommended for performance reasons:

The reason the CMS is not enabled by default is that ideally you would want to preprocess your textures with something like OpenImageIO’s maketx, in order to build mipmaps, optimize opaque, monochrome textures, and while doing so you could (and should) convert the textures from the color space they are encoded in, into your rendering/working space.
By doing this you move (expensive) color transformations out of the shading stage. You’ll notice considerable performance improvements when for instance, rendering UDIMs, where you can have a large number of UDIM textures of very high dimensions.

Special command(s) to enables internal AP1 conversion in V-Ray

This will affect internal RGB elements like camera white-balance, temperature of lights, V-Ray Physical-Sun-Sky.
• In 3ds Max: renderers.current.options_rgbColorSpace =2
• In Maya (mel): setAttr "vraySettings.rgbColorSpace" 2
vray_acescgAP1_internal
:memo: Note: V-Ray for Houdini and now V-Ray for Modo the above as an option in the UI (an ACEScg option).

Many thanks to the team work with the ACEScg community for this guide and all the tests and researches (and especially “Mu” on Discord for his testing, confirmation and renders used as a GIF here).

1 Like