So, going off the
news post I proceeded to download the Hotfix 4 update for Max 2011 released by Autodesk which supposedly fixes normal maps in viewports. I wasn't completely convinced, so I did some comparisons.
At first I couldn't get it to work, but then I noticed there's an extra step you have to take according to the Hotfix's readme file:
Qualified Normal Mapping
Qualified Normal Mapping mode is a new option in the INI file. You can set it to customize how normal mapping is performed on the DirectX material and MetaSL shaders in DirectX viewports. When this mode is off (the default), the normal-mapping mechanism aligns with how Maya performs normal mapping, which causes Maya-developed assets to display more consistently in 3ds Max DirectX viewports (but not in the scanline renderer). Turning on Qualified Normal Mapping mode causes orthogonalization to be applied to tangent basis vectors in order to better align with the scanline renderer.
If a legacy shader is working well then this mode should be left turned off.
Enabling qualified normal mapping is done by adding the following lines to 3dsmax.ini:
[ViewportNormalMapping]
ViewportNormalMappingType=Qualified
To disable qualified normal mapping:
[ViewportNormalMapping]
ViewportNormalMappingType=Legacy
Below are my results:
![Hotfix4_Comparison.jpg](http://ripethings.com/%7Erobert/Polycount/Demo/Hotfix4_Comparison.jpg)
As you can see it
works!
But only after you follow the instructions to edit the 3dsmax.ini file (C:\Users\UserName\AppData\Local\Autodesk\3dsmax\2011 - 64bit\enu\3dsmax.in)
I tried it both before and after with the Xoliul shader but it didn't work since I'm sure my version is old and isn't designed to work with Autodesk's fix.
Hope people find this helpful!
Replies
So i tested with the same single smoothgroup cube case: all DX shaders have this problem apparently, it's just the worthless "DX display" that gets the better normals. I'm thinking the "DirectX Material" they mention is not the DirectX Shader material, but the DX display.
So apparently they've gone with some closed, strange approach that limits the use to just a few solutions...
Absolutely not what I was hoping for, I'm gonna email Neil Hazzard and ask him about this.
Hi guys, Shader just needs some small tweaks and all works perfectly.
I hopee this is ok Xoliul:
setup basis like this
swizzle normal pixel like this
I think that's about it! looks fine here. By default it looks bowed in, not sure really why I am not a coder as such, I just fiddled with the maths and it seems to have worked out. The shader I use at work looked perfect, so I was sure I could tinker and get yours to work too.
In fact, this should work with any hlsl shader for max, just set the maths up a certain way and bob's mother's brother.