OpenColorIO (OCIO) is integrated into Terragen 4.5 Professional. It aims to allow you to work with colour spaces consistently with other applications in your pipeline.
1. Set up OCIO on your computer
If you're working at a company that uses OCIO, this has probably already been done for you.
If you don't have OCIO set up, follow these instructions:
- Download the Sample OCIO Configurations at https://github.com/AcademySoftwareFoundation/OpenColorIO or https://opencolorio.readthedocs.io/en/latest/quick_start/downloads.html
- Extract the contents of the .zip file to your computer.
- Decide which configuration you want to use. We recommend the aces_1.0.3 configuration. You should see a file called config.ocio inside each of the configuration folders.
- Set an environment variable in your system called OCIO. The OCIO variable should be set to the full path and filename of the config.ocio file you want to use.
2. Restart Terragen after you change environment variables that affect OCIO
3. Enable OCIO in your Terragen project
In Terragen, OCIO is enabled or disabled on a per-project (per-scene) basis. Click on Project Settings at the lower left of the main window, then turn on Use OCIO if it is not already on.
Command Line Arguments (Optional)
OCIO can be force-enabled with the command line argument "ocio" or "ocio=yes", as long as there is an environment variable named OCIO pointing to a valid OCIO config file. This command line argument causes Terragen to enable "Use OCIO" in Project Settings at startup and after a project is loaded. Terragen will default to roles which work well with ACES 1.0.3 but might not be compatible with your OCIO configuration, so we recommend testing this feature in the GUI first to see if the default settings are suitable. Please send us feedback if you think our defaults could be better or you need more controls.
OCIO can be disabled with the command line argument "ocio=no". This causes Terragen to disable "Use OCIO" in Project Settings at startup and after a project is loaded.
Toggling "Use OCIO" in Project Settings should cause the 3D Preview to refresh. If OCIO is configured correctly on your computer then you should also see the colours change in the 3D Preview. The difference may be subtle, but this depends on the OCIO configuration and the default choices for "Rendering space" and "Display space".
When "Use OCIO" is enabled, rendered images should also look different in the Render View.
When rendering with Path Tracer mode and viewing the 3D Preview in RTP mode, be sure to enable “Enable Path Tracing in the 3D Preview” button, above the 3D Preview pane.
Choosing Colour Spaces
You can change the "Rendering space" but this should usually be "scene_linear" or "rendering". The former is more likely to be compatible with a wide range of OCIO configurations, and this is what Terragen chooses by default.
You can change the "Display space", but this should match your monitor. Terragen defaults to whichever display/view the OCIO configuration says is the default. Often this is "sRGB", but if you're unsure what to use then check with the person who set up your OCIO configuration.
Shader params (linear)
This allows you to choose the colour space that is used by the colour parameters in most shaders, with some exceptions. It doesn't apply to atmosphere parameters, and some other shaders have parameters which are locked to a raw colour space. We'll update this document soon with more details.
You should choose a linear colour space for "shader params (linear)". RGB values stored in Terragen scene files have always been linear, and Terragen automatically applies a gamma of 2.2 when editing colours with the colour picker.
By default, Terragen tries to find a colour space in your OCIO configuration which is linear and uses Rec.709 primaries, based on the name. If it finds a colour space that it thinks is suitable, it maps it to a special built-in role called "linear_rec709" which Terragen always add to the list if it doesn't find a role by that name in your OCIO config. By using this built-in role, our goal is for project files to be portable between different OCIO configurations that have this colour space even if there isn't a standardized name for it. If it makes the wrong choice you will need to choose something more appropriate. Please ensure that you choose a linear colour space for the shader params space.
If you want to change this to a colour space other than linear Rec.709, bear in mind that most assets generated by third parties will have been built assuming linear Rec.709.
This allows you to choose the colour space that is used by Image Map Shaders which have "convert to linear" enabled in their options. It is also used by some of the images in the Default Shader.
By default, Terragen tries to find a colour space in your OCIO configuration which has the words "sRGB" and "texture" in its name. If it finds one it maps it to a special built-in role called "sRGB_texture" which Terragen always add to the list if it doesn't find a role by that name in your OCIO config. By using this built-in role, our goal is for project files to be portable between different OCIO configurations that have this colour space even if there isn't a standardized name for it. If it makes the wrong choice you will need to choose something more appropriate.
What's Supported in v4.5.43
- You can choose the rendering/working space from the roles defined in the OCIO config. It defaults to "scene_linear", e.g. "scene_linear (ACES - ACEScg)".
- You can choose the display/view space from the displays/views defined in the OCIO config. It defaults to whichever display/view the OCIO config says is the default, e.g. "sRGB (ACES)".
- You can choose the colour spaces used by shader parameters (a linear colour space). It defaults to a special built-in role called "linear_rec709". If it doesn't find this in your OCIO config it tries to guess a suitable colour space by looking at the names of colour spaces in your config.
- You can choose the colour space to interpret 8-bit texture reads (usually sRGB). It defaults to a special built-in role called "sRGB_texture". If it doesn't find this in your OCIO config it tries to guess a suitable colour space using the words "sRGB" and "texture".
- 3D Preview refreshes when toggling OCIO checkbox or changing colour spaces in Project Settings.
- Render View refreshes when toggling OCIO checkbox or changing colour spaces in Project Settings.
- HDR renders are interpreted using whichever "Rendering space" is selected.
- LDR (display) version of the render is the result of tonemapping and transforming the HDR image using whichever "Display space" is selected.
- The Render View displays the LDR (display) version of the rendered image.
- Saving to an LDR file format (e.g. TIFF) saves the LDR (display) version of the image.
- Saving to EXR saves directly from the raw HDR render. Therefore you should interpret EXRs according to whichever "Rendering space" is selected, e.g. "scene_linear (ACES - ACEScg)". We presume this is what you want if you are using Terragen in a multi-app OCIO workflow.
Not Yet Supported
- Colour space for linear textures. At the moment, when you check "data is linear" it treats the image as raw data (in the rendering space).
- Choice of colour space per shader or node. In this version, conversion is done the same for all images that have "convert to linear" checked, and individual colour parameters on shaders are predefined to either be convertible or not.
- Independent choice of colour space for internal rendering and file output. Until we add this option, EXRs are output using the scene linear values that were generated by the renderer.
The following example uses Terragen's Colour Management with the Academy Color Encoding System (ACES) config profile. Special thanks to Bastien Muller for providing the rendered examples.
Graphical User Interface, a general term that refers to the interface of any program running in a modern graphical operating system and which does not operate exclusively from the commandline.
A shader is a program or set of instructions used in 3D computer graphics to determine the final surface properties of an object or image. This can include arbitrarily complex descriptions of light absorption and diffusion, texture mapping, reflection and refraction, shadowing, surface displacement and post-processing effects. In Terragen 2 shaders are used to construct and modify almost every element of a scene.
A single object or device in the node network which generates or modifies data and may accept input data or create output data or both, depending on its function. Nodes usually have their own settings which control the data they create or how they modify data passing through them. Nodes are connected together in a network to perform work in a network-based user interface. In Terragen 2 nodes are connected together to describe a scene.