Monday, 7 December 2015

Maya 2016 Normal Map Bug

Technically this is not a bug. It is just a different default way that Maya 2016 now loads textures compared to all previous versions that can be frustrating when you don't know what's happening. Here is a demonstration on my State Alchemist project when I first brought in his normal maps for testing:


Beta normal maps applied to a Phong Shader in Maya 2016. Viewport 2.0 (Default), DirectX11 Render Engine. (OpenGL Render Engine produces the same results.)

As you can see, on the left the normal maps do not evaluate as expected. If you simply went through the paces of adding the maps on in Maya 2015 or below, you would immediately see the result shown on the right. 

At first it is not entirely clear what is wrong with the maps, but luckily I had seen this before in Unreal Development Kit a few years ago while in university, and so had an idea of where to start looking.

You can see the thread on my university project here to see the same issue in the UDK game engine:

Essentially the maps have been forced into a colour-managed environment, thanks to all the new viewport colour controls introduced in Maya 2016. As a result, the colours of the maps have been slightly altered internally, and so do not render as expected.

Luckily there is an easy fix!


Above is the issue. You may notice that the texture panel in the attributes editor to the left looks a tiny bit different to Maya 2015 now. Here's what has to be changed:


Changing the colour space to 'Raw', we are telling Maya not to enforce its own colour management on this texture file, and therefore it will work exactly the same way as it always used to in previous versions. However, it is still somewhat annoying to now have to remember yet another extra step during material setup....


Now you can see the problem has been resolved. As far as I am aware, there is no option to make Raw imported textures the norm unfortunately. Let me know if you find a way though!