Home Technical Talk

Reduce internal loops and keep the same normal map?

Hello everyone, its my first post here but glad to finally join this web that has given me so much useful information. I was wondering if there is some way to reduce the amount of polys by removing internal loops without making the normal map behave weird. I have some rocks with diffuse and normal map, and when I remove the unnecesary loops, the diffuse stays perfect (since the uv shape almost doesnt change) but the normal map starts to look strange. I understand its because the normals of the low-poly have changed when i reduced the amount of polys so it makes everything look extra curved (same happens when I dont triangulate something pre-bake and the engine triangulates it differently than Substance Painter)



Left side is the lower poly one that the normal map makes look extra-curved.


I cant just re-bake easily with the new "lower poly" version because i esentially made a couple of rocks and then built a lot different modules with them, and had to break the instancing to offset the instanced copies outside of 0-1 range for substance painter's bake to work. (If there is a way to move the instanced copies out of 0,1 range without breaking the instance in 3ds max i would also be very glad to hear it). In the end its my fault for not gauging correctly how much polys I needed to keep the shape but thought maybe there was some way to fix it without having to re-do everything :_) 


Ty very much in advance.

Replies

  • Ghogiel
    Offline / Send Message
    Ghogiel greentooth
    try converting the denser meshes object space normal map to tangent space normal using the light mesh as the target geometry. you can do it in designer, xnormal etc

  • squa1o
    Ghogiel said:
    try converting the denser meshes object space normal map to tangent space normal using the light mesh as the target geometry. you can do it in designer, xnormal etc

    I may be understanding something wrong here, but the normal map of the denser meshes is already in tangent space not object space afaik (purple map, no green anywhere), so i cant convert it can I? Im sorry if what im saying sounds dumb, im pretty noob with normal map shenanigans xd. Your help is greatly appreciated!
  • Noors
    Offline / Send Message
    Noors greentooth
    Does it matter if the blocks aren't instanced anymore as long as all uv are at the good position ? I'm not sure to understand why you couldn't rebake.
    Yeah you could rebake from the previous low + normal map, or from your original high poly.

    If you need to make adjustements on some objects without breaking instances, you should use "reference" copy (right click on object > make reference). In the modifier stack, you'll see that a line is created.  Everything under this line will be instanciated between copies, everything above will be unique to the object.
  • Ghogiel
    Offline / Send Message
    Ghogiel greentooth
    squa1o said:
    Ghogiel said:
    try converting the denser meshes object space normal map to tangent space normal using the light mesh as the target geometry. you can do it in designer, xnormal etc

    I may be understanding something wrong here, but the normal map of the denser meshes is already in tangent space not object space afaik (purple map, no green anywhere), so i cant convert it can I? Im sorry if what im saying sounds dumb, im pretty noob with normal map shenanigans xd. Your help is greatly appreciated!

    well you did mention substance, I would have thought you baked all the maps like OS normal, curvature, etc.

     What you want to do is take the OS space normal, or bake one, and your new less dense geometry, and use those in a object space to tangent conversion. That will correct the normal map to fit that new geometry


  • squa1o
    Noors said:
    Does it matter if the blocks aren't instanced anymore as long as all uv are at the good position ? I'm not sure to understand why you couldn't rebake.
    Yeah you could rebake from the previous low + normal map, or from your original high poly.

    If you need to make adjustements on some objects without breaking instances, you should use "reference" copy (right click on object > make reference). In the modifier stack, you'll see that a line is created.  Everything under this line will be instanciated between copies, everything above will be unique to the object.
    I feel so dumb having "reference" just below instance and not having noticed it until you mentioned it, holy shit. Thats great help for the future, thanks!

    The problem with them not being instanced is that once I remove the loops from the "original" 5 rocks that receive the bake, ill have to manually delete the same loops from all the copied rocks and then pray that max triangulates the new geometry in the exact same way as it does in the original piece or my normal map will have the "curved" look right? (Ive had cases where i export something to substance in quads, it looks great but then in unity it looks curved because unity decided to divide the quad in different triangles than painter). To confirm, im not scared of going through each rock one by one removing the loops, im scared that when i do so, max decides to triangulate those new faces that are left in another way compared to the original so I'll still have the same problem. Guess Ill have to try it and find out.
  • Ghogiel
    Offline / Send Message
    Ghogiel greentooth
    You probably won't have any issue with the triangulation being different if you do the same step every time. but it might just be quicker to replace the bricks with a substitute modifier.

    If I grasp the current state of what you have in front of you. I think it would work like, make your geo changes to the "original", select all the other versions of that, add a substitute modifier, then pick that "original" you changed to swap it. then repeat to the other 4.
  • squa1o
    Ghogiel said:
    You probably won't have any issue with the triangulation being different if you do the same step every time. but it might just be quicker to replace the bricks with a substitute modifier.

    If I grasp the current state of what you have in front of you. I think it would work like, make your geo changes to the "original", select all the other versions of that, add a substitute modifier, then pick that "original" you changed to swap it. then repeat to the other 4.

     I had never heard about the substitute modifier either. Thank you both of you for your help!
Sign In or Register to comment.