[Arnold] Gamma and linear input data


Arnold has three global settings for linearizing input data by applying an inverse-gamma correction. By default, texture maps, light colors, and shader colors are assumed to be already linear, but if you need to linearize them, set the gammas to 2.2.

C:\solidangle\Arnold-4.1.3.3\bin>kick -info options | find "gamma"
FLOAT         texture_gamma                     1
FLOAT         light_gamma                       1
FLOAT         shader_gamma                      1

Notes

  • The texture_gamma applies only to non-floating point textures. Floating point (Half, Float) textures are assumed linear.
  • Texture maps used to control things like normals, displacement, and opacity, will also be linearized if you set texture_gamma to 2.2.
  • The light and shader gammas apply to colors picked from color swatches in the application UI (that is, color ports that don’t have a shader tree plugged into them).

In plugins like SItoA and MtoA, you can find these gamma settings in the global render options.

I guess I should mention that in Softimage, you could use the built-in color management and leave these all set to 1.

[MtoA] Recipe for linear workflow


Ingredients

  • 1 x Maya
  • 1 x MtoA
  • 1 x Monitor calibrated to sRGB
  • Linear textures

Procedure

  1. In the Render Settings, set all the Arnold gamma correction settings to 1.0.
    ArnoldRenderSettingsGamma
  2. Set your Render View > Display to 32-bit floating-point (HDR).
  3. Click Render View > Color Management, and in the viewColorManager Attribute Editor, set the Image Color Profile to Linear sRGB (that is, your input textures are in linear space).
    ColorManager
  4. Render to EXR or some other linear floating point format.

hat tip: Fred