Contact Me

Name

Email

Message

Credits

© all rights reserved

Hover Setting

slideup

Max 2014 Gamma Correction: Data Channel VS Color Channel Maps



  Many people who work with rendering 3D graphics are familiar with linear workflow.  This once enigmatic knowledge has become pretty mainstream and more or less taken for granted these days.  For this reason, I'll skip the basics (for a refresher, check out Aversis Gamma Tutorial).

  What we need to know is that 3DSMax (like many other 3D software packages) is and has been catering to it's linear workflow users for years primarily through the Preferences > Gamma settings.  In 3DSMax 2014 however, a big change was made...

Max Gamma Settings



  3DSMax now automatically corrects your incoming image maps.  Whereas previously there was a checkbox option.  3DStudio is determining which types of maps require correction.  If you're using floating point images for your textures, this won't be a problem (as stated in the above image).  The idea behind this is great.  The diffuse and reflection textures all get corrected, the inverse of your display gamma, so that they appear correct.  Because 2.2 is the default PC display gamma, this is what Max is using, regardless of what gamma value you enter.  Other images, like images in lights will benefit from this too.  Where this can go wrong is in the data map sections in your shader, as shown below.  These channels, such as Bump, Refraction, Displacement and Opacity, require precise values based on pixel color and intensity.


  Below is an example of a simple material that highlights why these atuo-corrected images can produce unwanted results.

  On the top row you can see the material preview window, the left side showing undesired results. You can also see from the map preview captures that the auto-gamma correction is manipulating the colors of image maps that should be using precise values.  

  For example, the mid range for a normal map should be RGB value 127, 127, 255, appearing as a cool purple and informing the shader which direction the normals are intended to face on the object.  Max auto corrects this to a deep blue, throwing off the shaders calculations and rendering some confused looking normals.


Workaround #1
  To deal with this, we can can turn off Max's gamma correction and choose exactly which texture channels we want to gamma correct.  We can use a Color Correct modifer and embed the texture map inside.  Set to Advanced and set the gamma to .455.  We've been using this workflow at Blur for a long time however since Max2014 there is even more reason to stick with it.


Workaround #2
  If you're using VRay, an alternate method is to use the VRayHDRI loader for all of your maps and set the Inverse Gamma setting to .455 or sRGB.  Recent testing shows that the sRGB setting will actually produce more accurate results, mostly visible in your darker values.  Remember, this should't happen to EVERY map in your scene, only non-data-channel maps.  A suggested list of maps that should have correction below:

  • Diffuse
  • Reflection (if you're using colored reflections)
  • Self Illumination
  • Translucency
  • Images in lights
  • Fog Color
-UPDATE-

The 3DSMax Help guide has been updated.  There is some pretty thorough information on this concept here 3DS Gamma and LUT Preferences.

Here's a relevant excerpt:

"Note:When you use a bitmap for bump or displacement mapping (including normal mapping), 3ds Max considers only the numerical value of the pixels, so gamma correction is not needed. When you load such bitmaps, we recommend you choose Override and set the gamma value to 1.0 (no correction). This can be especially important if the values are computed exactly, as for normal bump maps, height maps, and so on."


Workaround #3
  So an alternate method is to use Max's gamma controls, allowing it's auto adjustments, and then custom adjust your data-channel maps (bump, normals, etc.) by setting them to Override = 1.0 in the bitmap loader section.