Struggling to figure out where the mis step is here. Fbx from max, normals tangents and bi normals all exported. But any uvs that are rotated 90 or something along those lines shaded wrong. Same model thrown into unreal renders fine as expected. ( I understand unity is open gl, so the normal maps g channel is flipped in the shader) textures are generated from substance designer
unity on the left and unreal on the right. you can see how the horizontal beams and the upper door is being shaded totally wrong
Any help very much appreciated
further testing is revealing some mis communication between max and unity. If I take said model from unreal and export it out of unreal and put that in unity, that model has proper normals. But beyond just being an extra step of annoyance, it also messes up the scale and proper orientation of the model ( y up unity) that was all set up properly in the first fbx itteration
threw it into blender to give it a shot there. similar issues persist. though imported tangents and calculate mikk match (unity model settings), though still wrong
my bad, the unreal export is busted the same way the blender export is, which makes a bit of sense since max doesnt have mikk support. but still lost on the rotated 90 uvs or top facing polies being shaded totally wrong
how are you generating your normal maps?
can we see a grab of your high and lowpoly (shaded/wireframe/UVs) models please?
Substance designer , at first i was using direct x, and flipping the green channel in the shader, and now i ve switched over to exporting as open gl to much the same results
its just a normal normal map :P the uvs are mostly just box projections with a few sectioins rotated 90, since thats the intention for those elements. I ve tried rotating them 180 or flipping to equally as bad results
I think I figured it out. Nothing to do with any of those things
Within the shader graph Id overlooked setting the sample texture 2d ->type-> normal
hehe, classic. glad you figured it out. because of the unique nature and use of normal maps, programmers can use more efficient compression algorithms specifically created for them. so identifying them as such improves real time performance/footprint.
oh yeah the import settings for normal maps, I know that one too well :D