Home Technical Talk

3Ds Max Normal Map problems after editing in Photoshop

polycounter lvl 9
Offline / Send Message
guategeek polycounter lvl 9
Hi everyone

I have been a lurker here for a long time, and have learned so much from you all. I currently am studying 3D art in Guatemala and our final project is an animated short film. Though I hope to get back into games in the future.

Thing is I'm having a weird problem with normal maps. And since no place on the internet has more info on normal maps than Polycount I figured I would see if anyone could help me out.

First off I tried baking my normal map using both 3Ds Max and Xnormal, all maps I baked looked fine but when I would apply them to the low poly model in max I would get something that looks like the right hand image on my first attachment. It didn't matter if I baked it in 3Ds Max or Xnormal the result was the same. I spent hours reading posts here, and going through the wiki and nothing I tired worked.

I then sent the high and low poly mesh to our teacher and he baked out a map in 15 minuets that worked fine for him. He sent me this map and it looked identical to my own map. When I applied it to my model it had the same problem, but when I merged his mesh & material into my scene it worked fine (the mesh is identical to the one I had). So I figured it was ether my computer or my scene. After some testing I was able to get my original scene to work fine with his normal map. Producing a result like the one on the Left in the attached image, though I don't know why it started working. I also had him show me his baking process next time I saw him and it was identical to my own baking process.

I then set out to fix some artifacts on the Normal map in Photoshop, cleaning up each channel separately. As soon as I saved the normal map in Photoshop I got the same results as with my own baked normal map (the right hand example in the first attached image).

I'm at a total loss for what to try now. Unfortunately my teacher is unskilled in this area and I'm kind of on my own. My normal map is saved as a TGA file, I checked and photoshop was saving it to 32bits, I have tried re-saving as 24bits and nothing changes. There is no compression on the TGA file.

In 3Ds Max I'm using vray, I have a vray material with a "normal bump" in the bump channel (set at 100%) and within the "normal bump" I have both the tga normal map selected, and a tif height map. If I disable the normal map the problem disappears. This exact same material setup worked immediately before saving the Normal Map in Photoshop. Also I have tried flipping red, or green, or both on the normal map but the problem remains (though you can notice a difference when flipping).

Thanks in advance for any help, and I hope I have posted this in the correct forum. I also attached a small image showing the normal map, uvs, and height map. - Jeff McArthur

Replies

  • Noors
    Offline / Send Message
    Noors greentooth
    Ok, so to resume, you only get issue after a save in photoshop ?
    I guess the maps before and after should look slightly different then ? Did you compare both ? In an other viewer ?
    The only thing i can think of would be some wrong color settings in photoshop preferences, a gamma issue...But really then the maps should look different in luminosity.

    Also, you might want to perform a normalize with nvidia normal plugin after an edit in photoshop. Normal maps represent normalized vectors, and you can make them slightly off with manual editing.

    Now i dont really know rendering workflow but is the heightmap really useful in the normal bump node ? I think people use a displacement map for the biggest details and normal maps for the tiny ones, sparing some heavy calculations.
  • Eric Chadwick
    I would bake this in Max, since you're rendering in Max. Although I'm not sure if Vray's normal map code is synched properly to Render To Texture. I know the scanline renderer is (or at least is supposed to be, didn't they break something in the recent Max?)

    Also, on the lowpoly model are you using a different smoothing group for each UV island? This should be setup before baking, as changing the smoothing or the UVs after baking can cause seams to appear.
  • guategeek
    Offline / Send Message
    guategeek polycounter lvl 9
    Thanks for the suggestions guys. Good to know about normalizing in the Nvidia plugin.

    I finally figured out what the problem was! Both files looked identical in Photoshop, and technically they are. But somehow max is interpreting the input ganmma differently on each. As soon as I would save in photoshop it would be interpreted different and due to the normal map being tangent based a change in hue messes everything up.

    This has something to do with us working with an input gamma of 2.2 and an output of 1.0. To get the edited file to work correctly I had to change the Gamma option when in the "Select Bitmap Image File" menu to "override" and place a value of 1.0. I have attached a screen cap.
  • Noors
    Offline / Send Message
    Noors greentooth
    Yes indeed, you have to preserve the gamma of all "mathematical" maps when working in linear workflow. That's just weird gamma is interpreted differently for 2 tga.
  • kw71
    Thank you, gatageek: you saved me!!! I was going to post this very same problem, and here is the solution!!!
  • guategeek
    Offline / Send Message
    guategeek polycounter lvl 9
    Yah it definitely caught me by surprise Noors, and I'm glad I could save you some time Kw71, I was pulling my hair out for hours on this one :P
  • 3ogham
    Offline / Send Message
    3ogham null
    OMG! This problem has been frustrating me for over a week now! Expletives don't do justice to my frustration!

    I've tried every file format and created normal maps using different packages to try and get Max to render it properly. TGA normal maps generated from Max itself were the only ones I could get to work. Once edited outside max, or even just resaved, they would break.

    Thank you so much guategeek for this fix! Ultra-kudos to you.
Sign In or Register to comment.