Hello everyone!
First time asking a question on here, I have scoured the internet and found truly no answers on this problem.
I have a gun that has custom vertex normals using the addon yavne. The custom normals are there so I can get a clean bake. I quickly learned it seems impossible to mirror custom normals... I have seen others with this issue and people just responded with "You can't mirror custom normals."
My first thought was: "NO! This makes custom normals impossible with Blender then... I mean it is possible but if it can't be mirrored then what's the point?"
It seems like my only solution is to export my model to 3DS Max or Maya then bring it back...
I did find this:
https://developer.blender.org/T47041It is a known issue but after 3 years it still has not been solved...
Blender is my favorite modelling tool but I have used many others. Every now and then I run into an issue like this with Blender that just makes it seem like a "game over" situation...
I just don't know what to do and if I can't figure out something I can't complete the project...
Thanks in advance.
Replies
If you know what "mirroring custom normals" means then it might be possible to write a script that does that.
Say, the mesh is centred at the world origin, you have two vertices, one is opposite to the other based on a world axis. On either of the vertices, you take the normal of the other one, flip that normal on that axis and then use it as its own normal? Is this what normal mirroring is?
Yeah... I keep telling myself I need to learn how to code...
I guess I have no choice but to mirror then edit both sides at the same time and die from boredom... I feel like thousands of people would be complaining about this issue but a lot of people I talked to had no clue why someone would want to edit the normals to improve the bake... I did not either for a long time though.
Well, I guess I know what to do now, unless there is some answer elsewhere but it seems unlikely. Maybe yavne will get a mirror normals feature. Maybe I should mention that to the dev.
Thanks!
- duplicate mesh-half with custom normals, mirror on X axis and leave as is
- duplicate from same source, mirror, clear out the stack and then apply transforms/reset xform
(at that stage any custom normals are likely gone - no experience with YAVNE here though)
- apply data transfer modifier on that second object, set the first one containing the normals you want as the source
- activate 'face corner data' and 'custom normals'. set to 'nearest corner of nearest face'
- apply modifier
quick test here suggests this will work. you might still end up with a visible seam down the mirror center which will need manual attention.
I tried creating custom normals in that version on a simple model using the built in tools and using mirror, and other then needing to clean up normals along the seam it worked ok.
Have not tried this but if it worked for you then it will probably work for me.
Thanks everyone! Maybe I should ask questions more often.
Edit: Actually... upon further inspection the normals are better but they are still looking a bit off... I also can't edit any normals after doing this or else the half that was duplicated breaks its normals...
Will post back later with better details. Gotta go to work.
Could you explain a bit more what is happening in this video - basically, what is being transferred to what ?
I understand the end result but I am having trouble visualizing the input and conditions. Looks like the normals of the outer edges of the selection "islands" are being transferred to anything else strictly within that area (excluding the border itself of course) ?
(In any case that looks pretty damn great - I am just trying to understand a bit more what's going on to see if it could be applied to some of things I am thinking of working on next)
Is that what you meant?