Since i updated to Unity3d 2017 1 (MacOS), all of my Legacy Diffuse Detail materials getting pink / red.
Without the normal map everything looks fine, but once i attach any normal map in my project, the material get’s pink / red. Reimporting does not work. I didn’t have this issue in Unity 5.6.3. Using the old Shader doesn’t work either, so i guess something is wrong with all my normal maps?
No, his question is why are you using a normal map in a slot intended for a middle grey noise texture. That shader doesn’t have a detail normal map, it’s a detail color multiplier.
The problem I believe is a change in how Unity encoded normal maps between 5.6 and 2017.
Yep, Unity 5.6 and prior, normal maps on desktop and consoles were compressed in a special layout with the “red” channel of the normal map stored in a DXT5 texture’s alpha, and the “green” channel of the normal map copied to the red, green, and blue channels of the texture used by the game. This is a really common technique for increasing the quality of normal maps used for over a decade by the game industry. The result in 5.6 and prior of using a normal map as a detail texture would have been a nice grey scale image that’s perfect for that shader. It worked, but by a complete fluke.
For some reason in 2017 it’s still doing most of this, but the red channel is pure white instead of a copy of the green channel. I have no idea why they’re doing this. It might be a minor increase in quality due to the way DXTC textures compress color.
I noticed the same thing. No idea why! But by copying the green data into the red (Thanks to bgolus for the inadvertant tip there) then it fixed my normals to look sensible again.
Really strange one Bottom line for me, doing that looks exactly the same as it did in 5.6 so all happy again