Home Technical Talk

[SOLVED] Transfer normal maps from Low Poly to Low Poly correctly or Transfer normals from map

polycounter lvl 8
Offline / Send Message
Pinned
Yoji polycounter lvl 8
Hi,
This will sound insane.
But I'm currently working on a task where I have to upscale a texture and I don't have the high poly for the bake anymore. ( I don't really care about my problem, I'll solve that, I'm just asking for this as an interesting topic/problem to discuss.)
So I made a test mesh and I was thinking about transferring textures and about transferring a normal from the original mesh to new mesh with different UVs.
I read these threads:
https://polycount.com/discussion/142351/transfer-existing-diffuse-specular-normal-map-from-one-uv-to-another
https://polycount.com/discussion/102128/baking-normal-map-from-one-uv-to-another
And after a lot of searches around here came across nothing about transferring normals from a normal map.
But I did some tests and yes, if you rotate the island on the new mesh, the normal gets rotated as well because all the bakers transfer pixel data, which just transfers colors RGB to the rotation, so the island will stay green and so on in the original places on the map that they had on the original mesh.
As you can see here:
https://imgur.com/ttEaDOf

Thinking about the solutions the only plausible method is to cut and rotate the islands manually in PS after bake. But what if you cut an island or make different UVs entirely?
Other things I've thought about was generating a high poly from the normal with some tessellation and displacement.
And a thing I have yet to figure out is to somehow change the R to G, G to B, etc; as needed.

Any opinions, ideas, proposals for our future poly searchers?

Replies

  • Noren
    Offline / Send Message
    Noren polycounter lvl 19
    In most softwares you should be able to bake a new normal map from the original lowpoly with applied normal map.
  • Yoji
    Offline / Send Message
    Yoji polycounter lvl 8
    I baked in Marmo and xNormal in my example.
    If you know a software that converts normal direction color based on detected normals from a normal map please share. :) 
    Basically they both acted like putting your old normal map into the color channel and baking another color channel from that but the island was rotated in the new mesh so the normal came out incorrectly in the new map.
  • Noren
    Offline / Send Message
    Noren polycounter lvl 19
    3ds Max can do it, for example.
    Just googled this, but have you tried using the Highpoly Normals Override in Xnormal?
  • Yoji
    Offline / Send Message
    Yoji polycounter lvl 8
    I didn't try it yet, thanks!
     I'll try it in max too. I imagine you're talking about baking with render to texture, right?


  • ActionDawg
    Offline / Send Message
    ActionDawg greentooth
    The Substance bakers have a transfer texture baker which works with normal maps.

    Alternatively if you don't have Substance a solution that will work with any baker with a transfer texture feature: Convert the original normal map to world space, use a baker to transfer it to the new UVs, convert to tangent space.
  • Yoji
    Offline / Send Message
    Yoji polycounter lvl 8
    Wow, it worked in max, can't believe it. So weird!

    I tried it in xNormal too, and read about it before but I don't know how that would help. What are you suggesting with that override?
    It did nothing except this time it baked a normal map with the intersection of the 2 uvs instead of it being flat and empty.
    Before, in xNormal I was applying what ablaine says here btw.
    https://polycount.com/discussion/102128/baking-normal-map-from-one-uv-to-another
  • Yoji
    Offline / Send Message
    Yoji polycounter lvl 8
    Thanks! I tried it in Maya too, it didn't work. I'll see how it looks tomorrow after the max attempt and maybe even in Painter later if I'm not satisfied. :)
    In any case it's good to know! I'll mark this topic as solved so people can find it and revel in it's glory. xD
  • Hitprady
    Offline / Send Message
    Hitprady node
    Im Still Stuck With the Same Issue in 2021. Did you find any solution of transferring/baking Normal maps, from one Uv to another.
  • Ghogiel
    Offline / Send Message
    Ghogiel greentooth
    Hitprady said:
    Im Still Stuck With the Same Issue in 2021. Did you find any solution of transferring/baking Normal maps, from one Uv to another.

    The age old way to do it is convert TS normal to object space normal map, transfer/bake maps to the new UV, convert back to tangent space. Depends entirely what program you are trying to do it in and what sources files you have access to.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    Substance designer - as stated in an earlier post.  It handles rotation of UVs etc. 
  • pior
    Online / Send Message
    pior grand marshal polycounter
    Blender does this, from within the same object even (from one UV channel to another) and it writes out a new, mathematically accurate normalmap. And every step of the way the source and/or target can be either tangent space or object space.

    This allows for very flexible workflows, as that means that an object is never really locked to a certain UV layout. Meaning that one doesn't need to sculpt a whole asset in order to start working on its bake, it can be done at any time ; and any lowpoly + normalmapped model can be considered a source high to bake from. A true non-linear workflow.
  • Hitprady
    Offline / Send Message
    Hitprady node
    pior said:
    Blender does this, from within the same object even (from one UV channel to another) and it writes out a new, mathematically accurate normalmap. And every step of the way the source and/or target can be either tangent space or object space.

    This allows for very flexible workflows, as that means that an object is never really locked to a certain UV layout. Meaning that one doesn't need to sculpt a whole asset in order to start working on its bake, it can be done at any time ; and any lowpoly + normalmapped model can be considered a source high to bake from. A true non-linear workflow.
    After posting my earlier question, I tried a 100 times in xnormals, blender, maya etc and finally I got to know that the Normal Map which I was trying to transfer had the issues itself and so the bakes were not proper. The Normal Map I was baking, had some normals flipped in some parts of the Uvs and  in some had shading/lighting issues in to the actual bake which the Uploader(on Market place) had done. Thankyou for sharing the information, for me it was better to recreate new Normals again by simply making a temporary High Poly mesh and do a bake from that n used some normals by cutting Pasting which were ok from the original Map itself..     
Sign In or Register to comment.