Linear Light Workflow (LLW) for 8-bit and float output rendering in Autodesk Maya

Share on linkedin
Share on twitter
Share on facebook
Share on google

This posting will provide a step by step tutorial on how to set up Linear Light Workflow (LLW) for the Caustic Visualizer renderer using Autodesk Maya’s Color Management. The Caustic Visualizer viewport also supports Maya’s Color Management tools.

Note that this tutorial is applicable to mental ray and you should be aware that the Maya software renderer does not support color management. I’ve uploaded a zipped Maya project which contains a texturemap source image and two Maya scenes – one is for 8-bit(png) and the other for float(exr) output.

Linear Light Workflow (LLW) with 3D applications refers to color managing the viewer, texturemap and color sources to display images with the correct contrast. Some people refer to this as color and display gamma; if you want to know more, my favorite color scientist, Charles Poynton’s Color and Gamma website explains the display gamma issue in great detail.

In my experience as a teacher and pipeline developer, most CG artists don’t understand the LLW and would rather ignore it. This doesn’t change the fact that all 3D applications should always be setup with LLW, otherwise you cannot make proper decisions about lighting your scenes, particularly for photo-realistic rendering. Even edge anti-aliasing is not properly displayed on a non gamma boosted display.

Color Management, added to Autodesk Maya 2011, allows artists to easily setup a LLW. Prior to this Maya version, LLW was convoluted and varied widely. It is now mostly automated, but there are some relatively minor issues which still need to be addressed manually, which will be described in this tutorial.

We will be touching on the following panes of Maya’s interface: RenderView, RenderSettings and Hypershade.

Below is a snapshot of RenderView and the Visualizer Viewport showing the elements which are part of the attached Maya scenes. Notice the two spheres, solid color and ramp rectangles at the right of the images where material RGB values were used to exactly match the background texture (how this is done will be described later)


First let’s discuss 8-bit output renders. RenderView, the Maya displayer, provides access to display ColorManagement in the “Display” pull-down.


You will see the RenderView color manager attributes on the right in the attribute editor; set them as you see below:

Image Color Profile is sRGB

Display Color Profile is sRGB


Next, in RenderSettings Common tab, please set:

Enable Color Management toggle on

Default Input Profile is sRGB

Default Output Profile is sRGB


Next, in the Caustic Visualizer tab, set the output file format to png and the Clip Final Shaded Color to on. Note the gamma value remains 1.0 (this attribute is only there for compatibility with the other renderers)


Next, let’s describe what is required for rendering float(exr) output.

Set the RenderView colormanager attributes as you see below:

Image Color Profile is Linear sRGB

Display Color Profile is sRGB


The RenderSettings Color Management must be changed to

Default Input Profile is sRGB

Default Output Profile is LinearsRGB


Next in the Caustic Visualizer tab set the output file format to exr. The Clip Final Shaded Color is set to off since we are outputting a float format we probably want to save images with over-bright values greater than 1.0. Note the gamma value remains 1.0(this attribute is only there for compatibility with the other renderers)


Next, let’s cover some of the hypershade nodes in these scenes. The background texture (a sRGB gamma boosted png file of the famous Kodak Marcie image widely used in color grading) is a surfaceShader with a file node attached to the color attribute. Note the choice in the Color Profile pull-down of the file node. It is set to “Use Default Input Profile”. This is directly connected to the RenderSettings Common tab ColorManagement Default Input Profile which is set to sRGB. This means that the texture will be automatically gamma inverted by 0.4545 at render time.


If we take a look at the hypershade material network for the brown sphere which has a phong material attached, we notice there is a gamma node directly connected to the color attribute of the phongShader. The RGB values of the color attribute of the gamma node were eye drop picked from the original Marcie png image in a paint program. Those RGB values were typed into the Value attribute of the gamma node. We then set all three Gamma values to 0.4545.

This inverts the specific RGB color so that it fits into our LLW setup and seamlessly matches the background color. The grey sphere is done in the same way. For single colors this is a more efficient approach than using a ramp node and a gamma node. For ramp nodes you have to attach a gamma node to the output in order to invert the gamma. It’s unfortunate that Maya does not have a Color Profile pull-down in these nodes just like the file node. If they had, this manual aspect of setting up LLW in Maya would be unnecessary.

Hypershade network for setting solid color RGB values.


Hypershade network for setting ramp RGB values.


I hope you found this tutorial helpful and I invite you to see our Caustic Series2 ray tracing acceleration boards and Visualizer plugins in action at SIGGRAPH 2013 in July. If you want to download a quick script developed by Ryan Montrucchio that you can copy/paste into a MEL tab within your Script Editor to quickly setup the defaultViewColorManager and Render Settings Color Management for a Linear Light Workflow, head over to our forum. You can find the full Autodesk Maya project available for download with the scenes shown above too.

We plan to keep developing more tutorials, tips and tricks and articles in the future, so keep interacting with us on our user forums and come back to our blog.

Make sure you follow us on Twitter (@CausticGraphics and @ImaginationTech) and like Caustic on Facebook for the latest news, videos and tutorials from Caustic.

Make sure you follow us on Twitter (@CausticGraphics and @ImaginationTech) and like us on Facebook for the latest news, videos and tutorials from Caustic. – See more at:
Make sure you follow us on Twitter (@CausticGraphics and @ImaginationTech) and like us on Facebook for the latest news, videos and tutorials from Caustic. – See more at:

Please leave a comment below

Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback. However, all comments are manually moderated and those deemed to be spam or solely promotional will be deleted. We respect your privacy and will not publish your personal details.

Blog Contact

If you have any enquiries regarding any of our blog posts, please contact:

United Kingdom
Tel: +44 (0)1923 260 511

Search by Tag

Search for posts by tag.

Search by Author

Search for posts by one of our authors.

Featured posts
Popular posts

Related blog articles

Product and event round-up from the experts in GPU and AI

It’s certainly been a busy few months for Imagination. Towards the latter end of last year, we released a raft of new products and initiatives, and a new CEO took the helm giving us real momentum for 2019. At the

How AI is conducting the future of music technology

“We tend to think of technological advances as destroying what’s gone before, but that doesn’t usually happen. This could lead to a different way of making music.” – Jarvis Cocker, former Pulp frontman, solo artist, writer and broadcaster In recent

Why you should join Imagination at Embedded World 2019

Our technology is focussed entirely on offering SoC manufacturers low power, high-performance options for building groundbreaking products in a range of markets, from automotive to smart devices such as smart speakers to the latest smartphones. Embedded World is one of

Stay up-to-date with Imagination

Sign up to receive the latest news and product updates from Imagination straight to your inbox.

  • This field is for validation purposes and should be left unchanged.