[I've posted this on the Crydev site, but I'm pretty desperate to figure this out as it's really starting to hold up my environment now.]
After watching the free video from Simon Fuchs on Eat3D, I've been baking normal maps using xNormal with the X+ Y- Z+ settings. But these normal maps actually appear incorrect in the free SDK, and maps baked with X+ Y+ Z+ appear correct. Is this a difference between the Crysis 2 SDK and the free SDK, or something that was changed in an update?
The normal maps are being saved from xNormal as .tga, and then opened in Photoshop, the alpha channel removed and saved using the Crytif exporter, as a normal map high-quality.
I've done a super simply test using these meshes:
I've baked using xNormal with a +Y and -Y.
Here's the result in the engine:
On the left is the model with the normal map baked with the correct -Y. On the right is the incorrect +Y.
But the one on the right looks correct; the top of the square is highlighted, and the bottom is shaded. The "correct" model on the left instead looks indented.
I've uploaded all the files as well in case anyone would like to see if they get the same result, might help me narrow down what I've done wrong.
The Max (2010) file: http://wesleymackinder.com/publicIma...normalTest.max
The high poly mesh saved as SBM for xNormal: http://wesleymackinder.com/publicIma...oblem/high.SBM
The low: http://wesleymackinder.com/publicIma...roblem/low.SBM
The normal map saved using Crytif, -Y: http://wesleymackinder.com/publicIma...-Y_normals.tif
Also I've checked the channel information for the -Y and the channels are correct and it is indeed -Y.
I just tested the object in Marmoset render, with the -Y normal, checked invert Y on Marmoset (therefore reading it how CryEngine reads normals maps?) and it looks correct.
So clearly something is going wrong when it's in the engine...?