Alright, I'm stumped. This hasn't been an issue before. Where ever there is a hard edge, you need a UV split. And where ever there is a UV split, you need a smoothing split, right?
...
It's as if the normal map isn't even applied
Where you have a hard edge, you need a uv split. Where you have a uv split, you don't need to do anything, but you can use a hard edge which is often beneficial.
Your normal map looks quite odd, there isn't any bevel information at the edges, did you accidentally load your lowpoly into your highpoly slot or something?
This is interesting, do you have some examples you can show that demonstrate this?
Sure thing, here you go.
I added way more seams than I normally would have, for the purposes of demonstration.
I'm too tired to put it into words, but it makes sense that you can't deform a normal mapped model with hardened edges, when you think about it. The normal map can only hide shading seams if it knows exactly where the seams are, and how they look. Once you start deforming the model (thus making this seams more or less drastic), the normal map can't account for it all.
Your normal map looks quite odd, there isn't any bevel information at the edges, did you accidentally load your lowpoly into your highpoly slot or something?
I just doubled checked, hoping you would be right but no. Everything is where it should be :''(
And also, is your high mesh actually smoothed? (not sure Max has this, but Maya has a "smooth preview" when you press 3, that smooths your mesh for preview purposes, but if you try to export it, it just exports the base, unsmoothed mesh)
As troubleshooting, if I run into any issues like this, I create a new file and import the exported pieces. Low first, and if nothing looks wrong, I delete it, and import the cage, and see if anything looks wrong, then delete it, and then the high, etc. That way you can make sure that you're exporting what you think you're exporting.
I added way more seams than I normally would have, for the purposes of demonstration.
I'm too tired to put it into words, but it makes sense that you can't deform a normal mapped model with hardened edges, when you think about it. The normal map can only hide shading seams if it knows exactly where the seams are, and how they look. Once you start deforming the model (thus making this seams more or less drastic), the normal map can't account for it all.
Hmm, have you tried this in engine? It looks like the normals are being recalculated here which is what would throw things off, it also introduces smoothing errors that have nothing to do with the hard edges/uvs.
Typically, when you get an asset into game, the normals are baked in and deformation will not cause them to be recalculated. So this sort of thing should work totally fine, otherwise you would see massive smoothing errors every time your meshes deformed/animated.
Not an animator/rigger though so I have limited means to test this myself.
Hmmm, it seemed to have been an issue with the exported HP. I imported my HP into Marmoset and it had no turbosmooth information. I converted my turbosmoothed HP to an editable poly, collapsing it, re-exported, and the turbosmooth information was there. This is the result with the LP being all one smoothing group.
Hmm, have you tried this in engine? It looks like the normals are being recalculated here which is what would throw things off, it also introduces smoothing errors that have nothing to do with the hard edges/uvs.
Typically, when you get an asset into game, the normals are baked in and deformation will not cause them to be recalculated. So this sort of thing should work totally fine, otherwise you would see massive smoothing errors every time your meshes deformed/animated.
Not an animator/rigger though so I have limited means to test this myself.
Here it is in Unreal 4 (using recommended export/import settings) before and after deformation.
Did you deform the model in the engine? The tangents shouldn't change like that.
Yeah, its very important to make sure that you're exporting the mesh in it's bind pose, rigged, and then deforming via skeletal animation in the engine.
If you're simply exporting the pre and post deformation objects from your 3D app, the result here would make sense, as the normals and tangents change. In engine, the normals and tangents should be locked down.
Yeah, its very important to make sure that you're exporting the mesh in it's bind pose, rigged, and then deforming via skeletal animation in the engine.
If you're simply exporting the pre and post deformation objects from your 3D app, the result here would make sense, as the normals and tangents change. In engine, the normals and tangents should be locked down.
Those screenshots are of a skeletal mesh with a blendshape. The shots are before and after toggling the blendshape in engine. I messed around briefly with manually rotating the bones in-engine and it looked like I was getting the same errors.
I can revisit the file later today and verify, if you want.
Those screenshots are of a skeletal mesh with a blendshape. The shots are before and after toggling the blendshape in engine. I messed around briefly with manually rotating the bones in-engine and it looked like I was getting the same errors.
I can revisit the file later today and verify, if you want.
Naa that should do it, thanks for putting in the effort!
Hi, sorry for the noob question, and lack english..
i try baking with unsplit UV for hard edge either soft edge in Xnormal and maya, but i think maya is way more supperior than xnormal...
i know this is wrong by unsplit UV i should harden the UV border
just wonder how it can be so different with the same method?
here are the pic
Soften Edge
Soften edge normal
Harden edge
Harden Edge normal
if u stack the soften edge normal, u will notice there a slight contrast different between Xnormal and Maya bake.
i wonder what setting that i miss for maya or xnormal to integrate the result of both normals?
just wonder how it can be so different with the same method?
each software uses a different math (algorhythm) when calculating tangent space normal maps (tsnm).
When the algorythm used to produce the tsnm is the same used by the visualization engine, you have what is called a synced workflow.
Synced workflow ensures your normal map is displayed correctly inside your engine.
In your case, Maya is synced with itself - so if you bake inside Maya, it will appear correct inside Maya [note: it might appear different in other engines]. The other bake was probably made with the xNormals default settings, which aren't synced with Maya, so it looks worse inside Maya.
You must learn what algorythm is used by your destination engine, wheher it is Marmoset, Unreal, Unity or any other one, and bake accordingly.
xNormals can be adapted to be synced with most algorythms, so that it bakes maps already synced with your destination engine.
Or you can convert maps using Handplane.
Man, I am glad I ran into this thread today . I was trying EVERYTHING to get a clean bake of my desert eagle model that I recently created, and I was very tempted to bevel the corners of my model, until I saw the tips eloquently explained by Earthquake (Thanks man). So after splitting the UVs up and hardening them, my bake looks SUPER clean... and I don't mind the seams at all, since I am using substance painter to create all of the texture work. I use Knald to do my texture baking and the results are SUPER clean
Man, I am glad I ran into this thread today . I was trying EVERYTHING to get a clean bake of my desert eagle model that I recently created, and I was very tempted to bevel the corners of my model, until I saw the tips eloquently explained by Earthquake (Thanks man). So after splitting the UVs up and hardening them, my bake looks SUPER clean... and I don't mind the seams at all, since I am using substance painter to create all of the texture work. I use Knald to do my texture baking and the results are SUPER clean
Beveled edges can often be the preferred method of the two though, as it can add a negligible amount of verts and vastly improves the silhouette. If targeting next gen I generally recommend making a mesh as water tight as budgets/anims allow and bevel sharp edges rather than split UVs/hardedges/smoothing groups.
Just wanted to say that you were about to do a different thing, rather then the wrong thing.
Beveled edges can often be the preferred method of the two though, as it can add a negligible amount of verts and vastly improves the silhouette. If targeting next gen I generally recommend making a mesh as water tight as budgets/anims allow and bevel sharp edges rather than split UVs/hardedges/smoothing groups.
Just wanted to say that you were about to do a different thing, rather then the wrong thing.
True... and honestly, the gun was already modelled and I didn't want to fuss with it. It is just a prop on my character. I did get into Knald and it looks SO CLEAN.For future models, I will simply do a bevel if needed.
Hello, i modeled a car some time ago. Now i am trying to bake down the normal map to the lowpoly but run into several problems. My software pipeline is Cinema4d (Model/UV), Substance Painter (Baking), Unity (Target).
I already got decent results with other models ( i am not sure if my workflow is completeley synced because of c4d...) but this time i got a lot of jagged lines in my normal map.
I believe it has something to do how i structured my high poly model. It consists of several objects (similar to real world) so you can see through cleaves inside and have 90 degree angles there. I am questioning myself if this is the right approach for the high poly modeling of a car if it should be baked for a game asset?
I already tried different bake options (ray distances) and split the UV to some islands for testing but both didnt helped.
While waiting for the approval of my account i did some further testing and reading. Now I solved most of my problems.
For once I had to increase the normal map resolution and AA in the baking process.
To solve the jagging between the different highres mesh shapes i used the lowres mesh in the high res export. I scaled down the lowres mesh so it fit under the shapes of the highres and exported it all together. I dont know if there is a better approach for the creases but this solved it for me.
Just a quick question regarding low poly modelling and baking. When you have two shapes that you want to save polys on, is penetrating them okay? Is it better to weld them as in the triangulated example or to just have them sticking through one another?
If it's okay to "penetrate", is it better to have it sit exactly on top of it or pass through it? Or just above?
Sorry if this seems stupid, but I'm new to doing this.
Either way is valid. If you float it, you won't get a nice transition from the bolt to the base that it's on but if that doesn't matter ... sure, save the triangles.
ok and how do i know what to smooth? see millenia doesnt smooth this pump thing.. There is no hard splits even though the highpoly has it and the reference image does too. So why doesnt he make hard edges on the pump? same he does to the receiver. And where parts are broken smoothing wise he actually stitches them together with textools
his tut on uv
When I was using 3DSMax to bake for Unreal Engine 4, back before they added mikkTspace tangents, I would unwrap my model and not worry about smoothing groups. Once I had my UVs packed, I would use texTools "smoothing groups from UV shells", which puts UV islands on separate smoothing groups. It was a decent workaround. I can still do that, even though I'm using a synced workflow, but most times I just set everything on one smoothing group and bake in substance or xNormal.
For beginners I highly recommend you just start by setting your smoothing groups by UV shells. TexTools has a built in script for this in the "Tools" dropbown, or the code is posted/hosted here on polycount. Just search polycount for "Uv islands to smoothing groups". There is a whole lot more you need to know, but this will be a great starting point.
At the end of the day, your high poly shapes and details will dictate the smoothing of your low. Your low's smoothing should only be used to make sure the normal map bake comes out well. Knowing the details of this only comes with practice.
Ok that would mean dont smooth anything and uv map first, right? Now the auestion: how to uv map correctly then? What really confuses me is how to smooth and do a uv map accordingly. I dont knof if you read my post above. If like you say, smoothing should be liks highpoly ( like i did above ) why is millenia not smoorhing it accordingly then? Curved and flat areas are on a same smoothing group. Wh Same goes for the pump part.
The smoothing on your low and your high will be mostly different.
Smoothing on the low is to make sure the normal map bakes correctly. A rule of thumb for the low is that anywhere you have harsh angles, generally greater then 70°, you should break your smoothing but there are a ton of caveats to that.
As for unwrapping, that is a very difficult question. I personally set my smoothing groups on my low, then use textools to autounwrap by my smoothing groups. I then refine the shells from there to get a final unwrap. However, I do it this way because I understand how low poly smoothing affects a bake. The only way to really understand that is to do bake a bunch of different objects.
I recommend moving forward and unwrap with whatever knowledge you have, try to do a bake and post your results in their own post and ask for help.
The smoothing on your low and your high will be mostly different.
Smoothing on the low is to make sure the normal map bakes correctly. A rule of thumb for the low is that anywhere you have harsh angles, generally greater then 70°, you should break your smoothing but there are a ton of caveats to that.
As for unwrapping, that is a very difficult question. I personally set my smoothing groups on my low, then use textools to autounwrap by my smoothing groups. I then refine the shells from there to get a final unwrap. However, I do it this way because I understand how low poly smoothing affects a bake. The only way to really understand that is to do bake a bunch of different objects.
This is all so very true and why it's so hard to tell people what's wrong with their bake because every sentence needs to be couched in, "Well, it depends ..."
Normal maps are stupid voodoo a lot of the time and you only learn by doing.
@dadochudy Yes, maybe a bit sharp in some areas, but not terrible. The lines where the stock meet the slide could use some softening back, it's best to run a test to see how it looks after you bake. The lower end cap might not be visible much, but could make some distracting sparkles duing player animation.
@dadochudy The only real way to know if it is too sharp is to do a test bake and view it in engine in the view the player will see. There is no universal size for edge widths, you need to figure that out on your own.
Hi, I've been through the thread so apologies if I've missed what I'm asking but I have a bit of confusion over normal creation and a synced workflow for Unreal 4. According to this normal map creation guide for UE4 using xNormal, it states that you should have only 1 smoothing group. But with the suggested workflow of this thread where you have hard edges at UV seams doesn't that contradict one another?
Again, apologies if its an obvious answer and one I've missed, just want to make sure I've got the workflow nailed down.
Urgent Help Required! I think this is the proper thread. I'm doing baking in Maya and i'm ending up with theses nasty lines all over my UV seams and edges. How can i fix this?
Here is an example of my bake.
Output map
FYI. I know i can paint over it with Photoshop but that's possibly the dumbest way imaginable as a huge object would dozens of seams would have dozens of black lines.
Hi there! Trying to bake this high mesh on his low one, but I always end up with that edge issue, no matter what settings I use.. I am rendering the map in maya right now, but I will move it to zbrush once it looks okay in maya to add more rusty details but I guess if I have this issue here I will still have it later in zBrush..
I read the hole page, I want to be sure in some points : if using sync workflow, no need to add hard edge just 1 smoothing group.
"Now you may be thinking to yourself “But I’m using a synced workflow, I don’t need to use any hard edges” and you would be correct. If the benefits brought up above do not appeal to you in any way, and you’re using a synced workflow, there is absolutely no reason that you need to use hard edges. There is also absolutely no reason that you need to avoid hard edges either, provided you are using an “Averaged projection mesh”, which you should be doing!."
I bake this model :
one hard edge the other using 1 smoothing group.\
the left one is the hard edge the result is clean ,the right one with one smoothing group it give me artifact result . is it suppose work fine with sync ? did I miss some step ? is there situation not to use 1 smoothing group ? and what the different between sync and not sync if 1 smoothing group will get me bad result ?
I think it's silly to think of it as "hard edge vs 1 smoothing group" like these are the only options or that 1 smoothing group means anything at all in the first place.
Think about it in terms of how extreme the mesh normals are instead. The more extreme the mesh normals are, the stronger the gradients will be in the normal map, and the more likely it is you're going to see errors of some sort, whether you've got a synced pipeline or not. There are a few different ways you can reduce extreme gradiation such as:
1. Using hard edges at your uv seams - as explained in the OP there are no drawbacks to this unless you're doing something weird (like not baking with an averaged projection mesh/cage) 2. Use bevels/chamfers to give your lowpoly less extreme mesh normals 3. Use face weighted normals or other normal editing tools to reduce extreme normals
So, can you make assets that use no hard edges? Yes, of course you can, but you'll often have to put in a bit of work to make sure your mesh is nice and clean to avoid errors, however even this depends on the context of what you're making, if you have a soft organic shape, the likelihood that you'll need to use hard edges lessens.
tl;dr: Learn the principals of mesh normals and you won't have to rely on rules like "always use hard edges" or "always use 1 smoothing group", these are lazy phrases people repeat.
I think it's silly to think of it as "hard edge vs 1 smoothing group" like these are the only options or that 1 smoothing group means anything at all in the first place.
Think about it in terms of how extreme the mesh normals are instead. The more extreme the mesh normals are, the stronger the gradients will be in the normal map, and the more likely it is you're going to see errors of some sort, whether you've got a synced pipeline or not. There are a few different ways you can reduce extreme gradiation such as:
1. Using hard edges at your uv seams - as explained in the OP there are no drawbacks to this unless you're doing something weird (like not baking with an averaged projection mesh/cage) 2. Use bevels/chamfers to give your lowpoly less extreme mesh normals 3. Use face weighted normals or other normal editing tools to reduce extreme normals
So, can you make assets that use no hard edges? Yes, of course you can, but you'll often have to put in a bit of work to make sure your mesh is nice and clean to avoid errors, however even this depends on the context of what you're making, if you have a soft organic shape, the likelihood that you'll need to use hard edges lessens.
Learn the principals of mesh normals and you won't have to rely on rules like "always use hard edges" or "always use 1 smoothing group", these are lazy phrases people repeat and are not replacements for knowledge.
Thanks I know the rule for baking normal map , but when I read about sync workflow I thought just do 1 smoothing group and that it. :P what you said still I need to apply the same old rule to sync workflow.
sync not about 1 smoothing group and it will make a perfect normal map it only help to rip off the gradient issue, so its about balancing not making Extream mesh normals and not too much hard edge.
also I need to be aware if the object will be mirror or glossy so it will not show lines like the image I put.
If you think of the values in the normal maps as being degrees of change from the low poly, that you can reduce in areas you need to by separating smoothing groups, it's very predictable to manage.
That said, you can pull off crazy stuff with a synced workflow:
All one smoothing group on the door body. In fact, all the pieces both shown and cropped out are split between only two smoothing groups as needed to control shading.
Also @"Klo Works" I wasn't able to get shearing as bad as yours.
The high poly has a little more rounded corners than yours but this is all one smoothing group and a very low roughness of 4.
It holds up until you get to very oblique angles:
Once you get any amount of detail into this though, the problem immediately disappears. It's only an artifact of the accuracy the normal map can provide. But anyways, approaching splitting smoothing groups by predicting how it will influence the final shading is a very powerful method.
Same normal map, just a simple wood albedo with detail in the roughness:
true, I test it out click on the image for hi res.
when baking in Xnormal the lines was more visible than, baking it in substance painter which the result similar to you. I will trust baking in substance painter hehe. when adding roughness or height it disappear.
the only problem like EQ mention when dealing with MIP map or small size map, I re-size the normal map to 256 and it start to show.
I understand now, its all about controlling the shading. if got too extreme gradiation to solve it what EQ mention : - I use hard edge (different smoothing group) on uv seam and with 90 degree. - bevel it or add more edge. - use face weighted for 3ds max.
hi as many of you here i faced the same problem with unacceptable gradients on normal maps here is the result i getting if bake maps in Topogun. It's awful.
but then tried to bake map for the same mesh in ZBrush. Huge difference!
What's the secret? Why I can't get the same results in Topogun...
hi as many of you here i faced the same problem with unacceptable gradients on normal maps here is the result i getting if bake maps in Topogun. It's awful.
but then tried to bake map for the same mesh in ZBrush. Huge difference!
What's the secret? Why I can't get the same results in Topogun...
Gradients in your normal maps are a GOOD thing, not a bad thing. That is the normal map bake compensating for the low poly. In a synched workflow your gradient normal map *should* look perfect. There are still reasons to not have gradients in your normal maps, but they are not the problem here. Your workflow not being synched between the baker and the game engine are the problem.
With that said it is better to bake in a modern program, Substance Painter/Designer or Knald would be my suggestions.
Why would you bake in Topogun or zbrush? Seems like a mistake. xNormal is free and very good.
xNormal a way more complex than Topogun or ZBrush. In those two programs you just tick a couple of buttons, press Bake and done. But yeah maybe I should invest some time in learning xNormal properly.
Hello! First of all, awesome thread, I've read and re-read a lot of pages from this thread already, but I can't seem to figure out some doubts I really need to clarify using one of my models to really solve them!. So, I'm making a random hard-surface spacecraft engine, and this is how I planned to unwrap it, according to what I learned from this thread.
From my understanding, this is the best way to unwrap this to keep my hard edges clean and nicely beveled, right? Each colour would be a UNIQUE UV Shell + Smoothing Group.
My doubs come mostly from the cylindrical ones(Marked with red dots in the image), is this the correct way?.
And my last doubt, just to confirm, on those cylindrical shells, should I straighten them for proper packing and texture optimization?
Thanks in advance for the already awesome information given in this thread!!
Replies
Where you have a hard edge, you need a uv split. Where you have a uv split, you don't need to do anything, but you can use a hard edge which is often beneficial.
Your normal map looks quite odd, there isn't any bevel information at the edges, did you accidentally load your lowpoly into your highpoly slot or something?
Sure thing, here you go.
I added way more seams than I normally would have, for the purposes of demonstration.
I'm too tired to put it into words, but it makes sense that you can't deform a normal mapped model with hardened edges, when you think about it. The normal map can only hide shading seams if it knows exactly where the seams are, and how they look. Once you start deforming the model (thus making this seams more or less drastic), the normal map can't account for it all.
I just doubled checked, hoping you would be right but no. Everything is where it should be :''(
Did you remember to use a cage with averaged normals?
As troubleshooting, if I run into any issues like this, I create a new file and import the exported pieces. Low first, and if nothing looks wrong, I delete it, and import the cage, and see if anything looks wrong, then delete it, and then the high, etc. That way you can make sure that you're exporting what you think you're exporting.
Hmm, have you tried this in engine? It looks like the normals are being recalculated here which is what would throw things off, it also introduces smoothing errors that have nothing to do with the hard edges/uvs.
Typically, when you get an asset into game, the normals are baked in and deformation will not cause them to be recalculated. So this sort of thing should work totally fine, otherwise you would see massive smoothing errors every time your meshes deformed/animated.
Not an animator/rigger though so I have limited means to test this myself.
Thanks so much guys!
Here it is in Unreal 4 (using recommended export/import settings) before and after deformation.
Did you deform the model in the engine? The tangents shouldn't change like that.
Yeah, its very important to make sure that you're exporting the mesh in it's bind pose, rigged, and then deforming via skeletal animation in the engine.
If you're simply exporting the pre and post deformation objects from your 3D app, the result here would make sense, as the normals and tangents change. In engine, the normals and tangents should be locked down.
Those screenshots are of a skeletal mesh with a blendshape. The shots are before and after toggling the blendshape in engine. I messed around briefly with manually rotating the bones in-engine and it looked like I was getting the same errors.
I can revisit the file later today and verify, if you want.
Naa that should do it, thanks for putting in the effort!
i try baking with unsplit UV for hard edge either soft edge in Xnormal and maya, but i think maya is way more supperior than xnormal...
i know this is wrong by unsplit UV i should harden the UV border
just wonder how it can be so different with the same method?
here are the pic
Soften Edge
Soften edge normal
Harden edge
Harden Edge normal
if u stack the soften edge normal, u will notice there a slight contrast different between Xnormal and Maya bake.
i wonder what setting that i miss for maya or xnormal to integrate the result of both normals?
thanks! this is awesome forum.!
When the algorythm used to produce the tsnm is the same used by the visualization engine, you have what is called a synced workflow.
Synced workflow ensures your normal map is displayed correctly inside your engine.
In your case, Maya is synced with itself - so if you bake inside Maya, it will appear correct inside Maya [note: it might appear different in other engines]. The other bake was probably made with the xNormals default settings, which aren't synced with Maya, so it looks worse inside Maya.
You must learn what algorythm is used by your destination engine, wheher it is Marmoset, Unreal, Unity or any other one, and bake accordingly.
xNormals can be adapted to be synced with most algorythms, so that it bakes maps already synced with your destination engine.
Or you can convert maps using Handplane.
Beveled edges can often be the preferred method of the two though, as it can add a negligible amount of verts and vastly improves the silhouette. If targeting next gen I generally recommend making a mesh as water tight as budgets/anims allow and bevel sharp edges rather than split UVs/hardedges/smoothing groups.
Just wanted to say that you were about to do a different thing, rather then the wrong thing.
True... and honestly, the gun was already modelled and I didn't want to fuss with it. It is just a prop on my character. I did get into Knald and it looks SO CLEAN.For future models, I will simply do a bevel if needed.
I already got decent results with other models ( i am not sure if my workflow is completeley synced because of c4d...) but this time i got a lot of jagged lines in my normal map.
I believe it has something to do how i structured my high poly model. It consists of several objects (similar to real world) so you can see through cleaves inside and have 90 degree angles there. I am questioning myself if this is the right approach for the high poly modeling of a car if it should be baked for a game asset?
I already tried different bake options (ray distances) and split the UV to some islands for testing but both didnt helped.
For once I had to increase the normal map resolution and AA in the baking process.
To solve the jagging between the different highres mesh shapes i used the lowres mesh in the high res export. I scaled down the lowres mesh so it fit under the shapes of the highres and exported it all together. I dont know if there is a better approach for the creases but this solved it for me.
If it's okay to "penetrate", is it better to have it sit exactly on top of it or pass through it? Or just above?
Sorry if this seems stupid, but I'm new to doing this.
That's everything in a nutshell.
When I was using 3DSMax to bake for Unreal Engine 4, back before they added mikkTspace tangents, I would unwrap my model and not worry about smoothing groups. Once I had my UVs packed, I would use texTools "smoothing groups from UV shells", which puts UV islands on separate smoothing groups. It was a decent workaround. I can still do that, even though I'm using a synced workflow, but most times I just set everything on one smoothing group and bake in substance or xNormal.
At the end of the day, your high poly shapes and details will dictate the smoothing of your low. Your low's smoothing should only be used to make sure the normal map bake comes out well. Knowing the details of this only comes with practice.
The smoothing on your low and your high will be mostly different.
Smoothing on the low is to make sure the normal map bakes correctly. A rule of thumb for the low is that anywhere you have harsh angles, generally greater then 70°, you should break your smoothing but there are a ton of caveats to that.
As for unwrapping, that is a very difficult question. I personally set my smoothing groups on my low, then use textools to autounwrap by my smoothing groups. I then refine the shells from there to get a final unwrap. However, I do it this way because I understand how low poly smoothing affects a bake. The only way to really understand that is to do bake a bunch of different objects.
I recommend moving forward and unwrap with whatever knowledge you have, try to do a bake and post your results in their own post and ask for help.
Normal maps are stupid voodoo a lot of the time and you only learn by doing.
Again, apologies if its an obvious answer and one I've missed, just want to make sure I've got the workflow nailed down.
Here is an example of my bake.
Output map
FYI. I know i can paint over it with Photoshop but that's possibly the dumbest way imaginable as a huge object would dozens of seams would have dozens of black lines.
Trying to bake this high mesh on his low one, but I always end up with that edge issue, no matter what settings I use..
I am rendering the map in maya right now, but I will move it to zbrush once it looks okay in maya to add more rusty details but I guess if I have this issue here I will still have it later in zBrush..
Thanks
I want to be sure in some points :
if using sync workflow, no need to add hard edge just 1 smoothing group.
I bake this model :
one hard edge the other using 1 smoothing group.\
the left one is the hard edge the result is clean ,the right one with one smoothing group it give me artifact result .
is it suppose work fine with sync ?
did I miss some step ?
is there situation not to use 1 smoothing group ?
and what the different between sync and not sync if 1 smoothing group will get me bad result ?
Think about it in terms of how extreme the mesh normals are instead. The more extreme the mesh normals are, the stronger the gradients will be in the normal map, and the more likely it is you're going to see errors of some sort, whether you've got a synced pipeline or not. There are a few different ways you can reduce extreme gradiation such as:
1. Using hard edges at your uv seams - as explained in the OP there are no drawbacks to this unless you're doing something weird (like not baking with an averaged projection mesh/cage)
2. Use bevels/chamfers to give your lowpoly less extreme mesh normals
3. Use face weighted normals or other normal editing tools to reduce extreme normals
So, can you make assets that use no hard edges? Yes, of course you can, but you'll often have to put in a bit of work to make sure your mesh is nice and clean to avoid errors, however even this depends on the context of what you're making, if you have a soft organic shape, the likelihood that you'll need to use hard edges lessens.
tl;dr: Learn the principals of mesh normals and you won't have to rely on rules like "always use hard edges" or "always use 1 smoothing group", these are lazy phrases people repeat.
I know the rule for baking normal map , but when I read about sync workflow I thought just do 1 smoothing group and that it. :P
what you said still I need to apply the same old rule to sync workflow.
sync not about 1 smoothing group and it will make a perfect normal map it only help to rip off the gradient issue,
so its about balancing not making Extream mesh normals and not too much hard edge.
also I need to be aware if the object will be mirror or glossy so it will not show lines like the image I put.
If you think of the values in the normal maps as being degrees of change from the low poly, that you can reduce in areas you need to by separating smoothing groups, it's very predictable to manage.
That said, you can pull off crazy stuff with a synced workflow:
All one smoothing group on the door body. In fact, all the pieces both shown and cropped out are split between only two smoothing groups as needed to control shading.
Also @"Klo Works" I wasn't able to get shearing as bad as yours.
The high poly has a little more rounded corners than yours but this is all one smoothing group and a very low roughness of 4.
It holds up until you get to very oblique angles:
Once you get any amount of detail into this though, the problem immediately disappears. It's only an artifact of the accuracy the normal map can provide. But anyways, approaching splitting smoothing groups by predicting how it will influence the final shading is a very powerful method.
Same normal map, just a simple wood albedo with detail in the roughness:
Sorry for dumping so many pictures!
true, I test it out
click on the image for hi res.
when baking in Xnormal the lines was more visible than, baking it in substance painter which the result similar to you.
I will trust baking in substance painter hehe.
when adding roughness or height it disappear.
the only problem like EQ mention when dealing with MIP map or small size map, I re-size the normal map to 256 and it start to show.
I understand now, its all about controlling the shading. if got too extreme gradiation to solve it what EQ mention :
- I use hard edge (different smoothing group) on uv seam and with 90 degree.
- bevel it or add more edge.
- use face weighted for 3ds max.
as many of you here i faced the same problem with unacceptable gradients on normal maps
here is the result i getting if bake maps in Topogun. It's awful.
but then tried to bake map for the same mesh in ZBrush. Huge difference!
What's the secret? Why I can't get the same results in Topogun...
With that said it is better to bake in a modern program, Substance Painter/Designer or Knald would be my suggestions.
From my understanding, this is the best way to unwrap this to keep my hard edges clean and nicely beveled, right? Each colour would be a UNIQUE UV Shell + Smoothing Group.
My doubs come mostly from the cylindrical ones(Marked with red dots in the image), is this the correct way?.
And my last doubt, just to confirm, on those cylindrical shells, should I straighten them for proper packing and texture optimization?
Thanks in advance for the already awesome information given in this thread!!