Also textools for max 2012-13 is super buggy, lot of studios won't allow it to be used because of the lack of updates. maybe add a link to another tool that would work for later versions. I max i still don`t think there is a native way to split smoothing groups based on UV islands.
Well the low AO is just to get shadows from intersections that you wouldn't get from baking the high AO with the model exploded, so it wouldn't really be doubling shadows anywhere. At least that's my understanding.
Yeah but they usually do double the shadows in some areas. You can always paint those out or just reduce opacity on both AO. It's usually bad idea to have 100% black in your AO anyway.
a bit off topic but whats the purpose of having a high AO and low AO on a texture? will that tend to overdo the shadows in some areas?
Yes that is one of the drawbacks to the high/low ao method. The low AO is an different layer entirely so you can just mask it a bit if its an issue in some place. Usually it isn't a big deal.
Problem #1, they don't offer a link to download the CryTB.dll file.
Problem #2, it doesn't actually ship in the tool directory of any of the SDKs as they say it does, where am I supposed to get this verion?
Problem #3, its not compatible with the latest version of xNormal, that would be OK if they would actually say which version it is compatible with (They actually show 2 different versions on this same page, wow confusing.)
Inconsistencies underlined in red:
Problem #4, I ended up finding a duplicate of this page elsewhere on the SDK's wiki and it contained a link to download the CryTB.dll, but that one didn't work with the xNormal version it said it was compatible with! IIRC it didn't work with any of the xNormals mentioned or the latest one.
thought id bump this cause i was just reminded of this thread when looking for a quick reference to share with someone re. solving normal map seams on edges.
found this flagrantly (and not-so-flagrantly) wrong information on a so-called "tech artist" wiki -
It is generally better not to use smoothing groups or hard edges to add definition to the low-poly game mesh. Smoothing groups cause the vertex normals to be split along the hard edge. This can cause normal map baking errors because the split normals each "see" a different part of the high-res mesh during the raycasting process. A single smoothing group should be applied to the entire in-game mesh before baking. However this can produce extreme shading differences across the model, as the lighting is interpolated across the extreme differences between the vertex normals. It is usually better to reduce these extremes when you can (mostly by adding bevels) because the tangent basis can only do so much to counteract the extreme lighting variations. Less extreme gradients are also better if your game engine doesn't use the same tangent basis as the baker (or doesn't make its own properly).
When you use object-space normal maps the vertex normal problem goes away since you're no longer relying on the crude vertex normals of the mesh. An object-space normal map completely ignores vertex normals.
its always frustrating seeing this kind of misinformation, because I remember what a pain it was for me trying to piece together the truth vs. fiction of baking when i was learning years ago. it's good that threads like this exist now, but it's also disturbing that threads like this are not the norm, and moreover that so many people apparently don't test anything they read before taking it as true - in the above passage the author has clearly run into the problems of 1 sg, but his/her solution somehow became "bevel most things," which is a shame. the author also correctly states that sg changes increase vert count, but is somehow oblivious to how UV breaks do the same thing.
newbies read this stuff and they believe it. it makes it a lot harder for people getting started when they're bombarded by both people who are right, and people who are parroting people who are wrong.
found this flagrantly (and not-so-flagrantly) wrong information on a so-called "tech artist" wiki -
Just as a heads up. The tech-artists wiki for the normal maps if I recall were just what Eric had from around 2009 (checked the revision history and it more like late 2008) and then kinda went downhill with bot spamming. I was supposed to help Eric move the relevant stuff over to PC wiki (got swamped ) and the tech artists wiki would just mirror the PC wiki.
Just as a heads up. The tech-artists wiki for the normal maps if I recall were just what Eric had from around 2009 and then kinda went downhill with bot spamming. I was supposed to help Eric move the relevant stuff over to PC wiki (got swamped ) and the tech artists wiki would just mirror the PC wiki.
ah. i hope no one takes offense, of course sometimes we make tutorials only to later realize errors (i have certainly done this myself, more than once). i just wanted to point it out because i really do see that exact advice all the time w/r/t baking normals and this was like, a perfect example
ah. i hope no one takes offense, of course sometimes we make tutorials only to later realize errors (i have certainly done this myself, more than once). i just wanted to point it out because i really do see that exact advice all the time w/r/t baking normals and this was like, a perfect example
No problem dude. Definitely don't want to misinform people! I'll try and help move over the content or see if I can ask Rob Galanakis to mirror the normal map info over to the PC wiki.
Hey guys are there any guidelines to getting a really good set of uvs ready for baking a hard edged mechanical shape? Pelt mapping is easy but nearly always results in a little bit of stretching, especially if you are trying not to create uv seams everywhere, so do you just use planar mapping a lot? or what?
Can you post images of your problem? If so, start a new thread and post them there. If not: A bit of stretching is preferable over a million seperate pieces, in my opinion. It depends on what the texture will look like, but since in a lot of cases the texture of a hard-surface model will contain straight lines, I straighten a lot of my uv's to make painting less of a chore (as with very lowres textures, because the visual difference between an entirely straight line and one that's slightly off-kilter will be huge)
Hey guys are there any guidelines to getting a really good set of uvs ready for baking a hard edged mechanical shape? Pelt mapping is easy but nearly always results in a little bit of stretching, especially if you are trying not to create uv seams everywhere, so do you just use planar mapping a lot? or what?
Good info in this thread so far, thanks!
I don't ever do planar mapping, I use Modo's unwrap tool, which you select your seam edges and then it does the pelt/relax/whatever type unwrap for you, with various options. I think most 3d apps have tools that work basically the same these days.
Sometimes I will select more seams than I otherwise want in this step, and then stitch them back together, and that generally results in a more predictable unwrap.
Often times I will use the tweak tool in modo, or "soft move" to nudge things around into the general shape I want, then run a relax with a very small strength, and then straighten edges up. This saves a lot of time with really fussy shapes.
I try to always straighten out edges that are straight on the model, and always align my uv islands straight as well, if you have a lot of angles or randomly rotated uv islands your normals aren't going to be as crisp. It takes more pixels to represent an angle than it does a straight line. Having a uv island that is even a few degrees off can cause nasty aliasing type artifacts.
thanks for the reply, ok so its still a very time consuming process to straighten up all those edges. Perhaps modos basic pelt/relax tools are really good and get you close to what you want but at work I only have Cinema4D and at home I try to use 3DSmax so I have to make do with the tools available in those apps. C4Ds pelt unwrap often comes out all slanted/skewed and has very little in the way of options eg. you cant tell it how much to relax by.
hi
can i get some help here plz?
after 2 days of trying i got better result but still not perfect, i have giving to undersatnd that to keep may hard edges i need to split the uvs where they meet,so thats what i did and definitely i got better result but still have some artifact whith fine details, as you can notice the small details added on the hard edges.
i'm stuck here plz help
hi
can i get some help here plz?
after 2 days of trying i got better result but still not perfect, i have giving to undersatnd that to keep may hard edges i need to split the uvs where they meet,so thats what i did and definitely i got better result but still have some artifact whith fine details, as you can notice the small details added on the hard edges.
How are you setting up your cage in xNormal? I recently did a test with a pillar, take a look if you want.
Not 100% sure my method is perfect. If you're having trouble understanding why you have to split UV's where you have different smoothing groups, google for vertex splits / normals. Polycount wiki should have some info on vertex slipts and normals, also http://tech-artists.org/wiki/Beveling
@bek you result looks really cool
the cage is left by defauflt (exported normals) i tried avreage didnt give me any better results, and i used different smoothing groups, depending on my uv shells.
ok so i tried with avreage cage and here is what i got, also i did run the Xnormal 3d viwer to check if my models are aligned and noticed that the low poly was using 1 smoothing group wich is not the case in 3ds max.
EQ, I understand a fair amount of the information in this thread, but what confuses me at this point is the best method to build the cage, and what is or is not a reasonable tweak to make manually to it.
And when to adjust the cage to get a better bake. At the moment I just "Inflate" the mesh, so to speak, and use it. For simple stuff that works with only very minor distortion, but I can imagine for a more complicated object, with notches and crevices, this could produce some weird things...
And I remember seeing, (not sure if it was misinformation), that if you're baking a cylinder, the caps should be much closer to the low-poly mesh than the sides are, to prevent distortion.
So, any tips on the actual building of a cage that supports quality baking? Or any good tutorials on the subject that get the EQ stamp of approval?
EQ, I understand a fair amount of the information in this thread, but what confuses me at this point is the best method to build the cage, and what is or is not a reasonable tweak to make manually to it.
And when to adjust the cage to get a better bake. At the moment I just "Inflate" the mesh, so to speak, and use it. For simple stuff that works with only very minor distortion, but I can imagine for a more complicated object, with notches and crevices, this could produce some weird things...
And I remember seeing, (not sure if it was misinformation), that if you're baking a cylinder, the caps should be much closer to the low-poly mesh than the sides are, to prevent distortion.
So, any tips on the actual building of a cage that supports quality baking? Or any good tutorials on the subject that get the EQ stamp of approval?
Give that a read and let me know if you still have some specific Q's.
Generally as far as tweaking the cage goes I try not to do it, because you need to redo it with revisions, and understanding how your normals are getting averaged and which direction they are pointing will give you a lot of options to fix it with the mesh itself. IE: adding more sides to a cylinder to reduce waviness, adding bevels, cutting in one or two verts to fix skewed floater detail, etc.
Custom tweaking the cage is is something that works differently in different apps so I try to avoid doing it.
Also for something like a cylinder, adding in some extra sides is generally going to make the asset look better( a really jagged model with straight lines is still a jagged model). And if the section that you're getting issues on is too small/unimportant to add extra geo, its probably too small/unimportant to ever notice in game either and the best solution is just to ZOOM OUT AND STOP WORRYING. =D
Great article/read EQ...I was wondering if you could clear up a few things for me???
1)I think I might have the terminology wrong...are UV splits and UV borders the same thing?
2)Are edges considered hard because its on a 90 degree bend or because the edge is between 2 separate smoothing groups?
3)Is this what you were refering to in text tools when you said
"add hard edges along your uv borders with a Max/Maya script."
When I ran this script I get this in the normals on the corners...is it due to my topology?
http://s7.postimage.org/ofynh0yix/question4.jpg
Thanks hugely in advance EQ, this is the stuff they don't teach in school and when they do we get errors and they say it's us and don't give a solution.
Great article/read EQ...I was wondering if you could clear up a few things for me???
1)I think I might have the terminology wrong...are UV splits and UV borders the same thing?
2)Are edges considered hard because its on a 90 degree bend or because the edge is between 2 separate smoothing groups?
3)Is this what you were refering to in text tools when you said
"add hard edges along your uv borders with a Max/Maya script."
When I ran this script I get this in the normals on the corners...is it due to my topology?
http://s7.postimage.org/ofynh0yix/question4.jpg
Thanks hugely in advance EQ, this is the stuff they don't teach in school and when they do we get errors and they say it's us and don't give a solution.
1. Yes uv splits are the same thing as uv borders.
2. Hard edges because you have smoothing groups on either side of the edge. In Maya you just select your edge and set it to hard, in max you have the convoluted smoothing group system, so really just different terms for the same thing.
3. This is because of your geometry, if you're viewing this asset in a synced workflow it will be fine, if not you will get smoothing errors. There isn't anything enherantly "incorrect" with the normal map content you have there, its doing exactly what it should, its just that those sort of things work better or worse depending on your combination of baker/renderer.
An easy way to avoid this sort of thing is to leave that detail in the normal map, the normal map can do that sort of detail very easily with minimal geometry in your low poly(though it wont affect your silhouette of course).
Having proper hard/soft edges (instead of all soft edges)
Splitting UV's where all the hard edges are
Used an averaged projection mesh (slightly inflated low-poly with all soft edges)
to generate a normal map and the results turned out as this:
The red arrows point to edges that are hard edges and have UV's split and the green arrow also points to an edge that is hard and has UV's split, but with the results that I want/expect for all the edges with a red arrow.
Is there something that I did wrong? Please do let me know if any additional information is needed.
*I am using Maya 2013 for the modeling and xNormal for generating the normal map.
What is that part supposed to look like, and how steep is the edge?
I can't tell from that screenshot, but to me it looks perfectly fine once the Spec and Color maps come into play. Even without them it looks functional.
The edges the red arrows point to have a very visible black seam while the edge with a green arrow looks smooth and doesn't have a visible "infinitely-sharp edge" like the others.
I don't think that black seam would look fine after I have textured it.
It looks like you're not using a proper averaged projection mesh/cage, looks like you're getting gaps/seams at the hard edges or something.
Maybe try with a less complex mesh and make sure you know how to get a seamless bake, and then come back to this?
I would say in general, you're probably using too many hard edges, it almost looks like every face has a hard edge here, which will mean a uv seam on every face too if you want to get a bake without seams or errors, so thats way, way too many seams.
I would say in general, you're probably using too many hard edges, it almost looks like every face has a hard edge here, which will mean a uv seam on every face too if you want to get a bake without seams or errors, so thats way, way too many seams.
All the edges with the black gap are indeed all hard edges and they also have UV seams, which from what I understand, should be able to avoid getting black gaps.
The edge that the green arrow is also a hard edge and has split UV's. It is giving me the results I want. Is it right to assume with a proper set up, all of my edges will be able to look like that? Or is it unavoidable to have some gaps/seams?
On the topic of too many hard edges, I was under the (maybe wrong) impression that as long as the projection mesh was properly set up and the UV's split where the hard edges are, using hard edges would not be a problem as it helps minimize gradients on the normal maps.
So... is the lesson I should be learning from this is that I should still be using hard edges with discretion? I shouldn't make every hard angle from the concept/design a hard edge as that is technically incorrect? Please do correct me on anything that is wrong.
As I understand, a proper Averaged Projection Mesh is a mesh that has the same topology as the in-game mesh, but with all soft edges, correct?
Yep =[
All the edges with the black gap are indeed all hard edges and they also have UV seams, which from what I understand, should be able to avoid getting black gaps.
The edge that the green arrow is also a hard edge and has split UV's. It is giving me the results I want. Is it right to assume with a proper set up, all of my edges will be able to look like that? Or is it unavoidable to have some gaps/seams?
On the topic of too many hard edges, I was under the (maybe wrong) impression that as long as the projection mesh was properly set up and the UV's split where the hard edges are, using hard edges would not be a problem as it helps minimize gradients on the normal maps.
So... is the lesson I should be learning from this is that I should still be using hard edges with discretion? I shouldn't make every hard angle from the concept/design a hard edge as that is technically incorrect? Please do correct me on anything that is wrong.
I will certainly do this.
Technically you should be able to bake a mesh that has hard edges on every edge and uv seams on every face and get a seamless bake. IE: a cube with hard edges on every edge(which is an easy test case to make sure your workflow is... working).
In practice you should avoid excessive use of hard edges, as it bumps up your vertex count and your uv seams, which makes texturing more time consuming. Generally I will stick to using hard edges only on my uv seams, and layout my uv layout in what I feel is a logical, common sense way. Then I will add in extra hard edges, and further break up my uvs only where needed to avoid smoothing errors, after doing test bakes and tests in the target game engine to see what needs to be fixed.
Now what is excessive use of hard edges gets very subjective, there is no "correct answer" or "rule" for this.
Thanks for writing this EarthQuake. My take-away was that an "Averaged Projection Mesh" is essentially a cloned "cage" mesh, with one smoothing group for the entire mesh. So you can have hard edges on your model but they will be ignored when baking using an Averaged Projection Mesh. You still get the smoothing (and other) benefits of having hard edges on the mesh itself, but none of the baking errors derived from hard edges you would otherwise get when baking using Explicit Mesh Normals.
Yes that is pretty much it.
I do have a question regarding the "Destructive Baking Workflows" bit. I don't disagree with anything that was said, but I've found that I'll often need to use a smaller push value when baking (for example) the fingers of a character, and a higher push value when baking larger forms like armor. I'll then need to combine the bakes in Photoshop. I can definitely see how this would fall under the category of destructive workflow practices since there is some Photoshop voodoo happening, but I'm not certain it's always avoidable.
Yeah that sort of stuff is really things I like to avoid in general, you may have specific cases where it makes sense to do something else. I've seen a lot of people spend all sorts of time and effort doing really weird things with cages/baking/spiting every mesh chunk up and doing a different bake with it and things like that. That sort of stuff should really be avoided. Doing a quick tweak of your cage on 1 small area, or doing a quick 2nd bake to fix one small area is something I do occasionally myself too. The main bit of advice I want to make there is to avoid excessive tweaking that will take a long time to redo if you need to make a change that requires everything to be rebaked.
Also, regarding averaged normals when working under tight triangle budgets. You may not always be able to afford to round out every cylinder with plenty of sides to get a nice bake, or add control edges. Or maybe you can do it, but sacrifices would definitely need to be made in other areas to make up for it. I'd just like to know what your thoughts are on this.
Yeah in theory that is a good point, though I find in reality if you're doing super low poly stuff, but still baking normal maps etc it is going to be a very low priority asset/very small on screen/etc. So generally its not a big deal. If you do find yourself working with extremely low triangle counts you may have to come up with some compromises/tricks to deal with that.
Spread them around a bit, in the UVs. Because even if technically they're all separate islands, they still look like they're all sewn together, and so they produce the same issue. Just put some space between each UV island.
I did a rebake after separating the UV islands and below is the result:
It seems a little bit better but I'm still getting some hard edges. Are those unavoidable or there's still some tweaking I have to do for a truly seamless bake?
Those look really minor to me, and they won't be visible at all, unless it's under close inspection. I'm not sure if you can fix that (I just tried it, and got the same issue).
A cube might not be the best test mesh because of its simple UV's.. currently what you've got is all hard edges on the low, so each face of the cube will be 1 uv island, since there is no benefit to stitching them (performance wise, texturing might be a different story). This setup is good because you can maximise uv space and the nm won't have shading all over it that doesn't compress well.
However, you can do cube with hard edges only on uv seams (when the uv is one t / cross shaped island) which will minimise splits but some areas will have worse shading. In the case of the cube I thinkkkk most people will agree that the few vertices saved are not worth the uv space lost and problems with the nm shading. This is why I don't think a cube is a great example, because it's not complex enough for all this stuff we're trying to do to increase performance to actually make a difference. When you've got a more complex model, minimising splits can save a huge number of vertices, and then all you have to do is be smart about where you place your hard edges and how this affects the normal map.
You're probably going to still get those edges when you zoom way the fuck in where there are hard edges on the low. Smoothing high poly will make them a little less noticeable, and it might even be that a synced workflow removes them completely, however I can't personally say I've tested this. You could try a handplaned result and see what you get.
I did a rebake after separating the UV islands and below is the result:
It seems a little bit better but I'm still getting some hard edges. Are those unavoidable or there's still some tweaking I have to do for a truly seamless bake?
This is a resolution/detail/uv seam issue.
Any time you have detail that is very fine, and you have a low resolution texture, especially along a uv seam you will see visible seam.
To fix:
use a higher resolution texture
don't use such fine detail in your highpoly (your edges are too tight here)
don't zoom in so far
Any time you zoom in on a normal mapped object too far you will eventually see seams around your uv seams, if you use hard edges or not has no bearing on this. Its simply a matter of resolution.
eq: would snapping your uv's to the pixels help with that? If so it might not fix it 100%, but might be worth a try, as this looks like it might be related to filtering.
eq: would snapping your uv's to the pixels help with that? If so it might not fix it 100%, but might be worth a try, as this looks like it might be related to filtering.
It may, in this case the edges on the highpoly are really just too tight. Which isn't very good for technical reasons like this, and doesn't make for a very appealing effect either(broader edges tend to show specular reflections better).
So to me, the solution is simple, soften up the edges.
I did zoom in on the cube a lot more than I intended to and it does look fine when seen from a bit farther.
I also tested softening up the edges a little and did make it look a lot better even up closer (the seam is visible, but not noticeable from intended viewing distance).
===============
Now I have another question, say I have a pillar like this:
(it is intended to be square in shape and not to fake the roundness using normal maps)
All edges are hard edges, which I would think I have to make all the edges into a seam and lay them out as separate islands if I want my normal map to be seamless without extreme gradients.
Unwrapping it like a cylinder, however, would get me less UV seams but unwanted gradients in my map.
Is there any advice on this situation? Or is this one of those grey areas that we'd have to make our own decisions depending on each different case?
Even things that are square tend to have slightly rounded edges, little in life is really as sharp as a hardened edge in a 3d program would be, and objects generally look a little better if you exaggerate that softness.
Now, if you just want to have completely hard edges here, you don't even need to bake a normal map for it(unless there are other details that need to be represented in the normal map). If you don't do a baked normal map, you don't have to worry about spliting your uvs where you have hard edges.
You can also simply add in some extra geometry, bevel/chamfer the low poly to avoid smoothing errors, which will let you cut down on uv seams. For an object like this, you could give it 5-10x more polygons before it would even be an issue performance wise, under 500 or so tris a signle draw call(ie the cost of rendering any object) makes more impact than the triangle count.
Replies
Yeah my bad, weapons, vehicles and props are not always hard surface, you're absolutely right. They just tend to be hard surface objects.
There's a couple of scripts in this thread: http://www.polycount.com/forum/showthread.php?t=71406
(and more floating around PC, giving the search function a healthy workout might be an idea)
a bit off topic but whats the purpose of having a high AO and low AO on a texture? will that tend to overdo the shadows in some areas?
http://wiki.polycount.com/AmbientOcclusionMap#EarthQuake.27s_Baking_Method
Yes that is one of the drawbacks to the high/low ao method. The low AO is an different layer entirely so you can just mask it a bit if its an issue in some place. Usually it isn't a big deal.
Problem #1, they don't offer a link to download the CryTB.dll file.
Problem #2, it doesn't actually ship in the tool directory of any of the SDKs as they say it does, where am I supposed to get this verion?
Problem #3, its not compatible with the latest version of xNormal, that would be OK if they would actually say which version it is compatible with (They actually show 2 different versions on this same page, wow confusing.)
Inconsistencies underlined in red:
Problem #4, I ended up finding a duplicate of this page elsewhere on the SDK's wiki and it contained a link to download the CryTB.dll, but that one didn't work with the xNormal version it said it was compatible with! IIRC it didn't work with any of the xNormals mentioned or the latest one.
WTF. Sigh, Crytek...
found this flagrantly (and not-so-flagrantly) wrong information on a so-called "tech artist" wiki -
http://tech-artists.org/wiki/Normal_mapping#Smoothing_Groups_or_Hard_Edges
(underlines mine) its always frustrating seeing this kind of misinformation, because I remember what a pain it was for me trying to piece together the truth vs. fiction of baking when i was learning years ago. it's good that threads like this exist now, but it's also disturbing that threads like this are not the norm, and moreover that so many people apparently don't test anything they read before taking it as true - in the above passage the author has clearly run into the problems of 1 sg, but his/her solution somehow became "bevel most things," which is a shame. the author also correctly states that sg changes increase vert count, but is somehow oblivious to how UV breaks do the same thing.
newbies read this stuff and they believe it. it makes it a lot harder for people getting started when they're bombarded by both people who are right, and people who are parroting people who are wrong.
thats my rant!
Just as a heads up. The tech-artists wiki for the normal maps if I recall were just what Eric had from around 2009 (checked the revision history and it more like late 2008) and then kinda went downhill with bot spamming. I was supposed to help Eric move the relevant stuff over to PC wiki (got swamped ) and the tech artists wiki would just mirror the PC wiki.
No problem dude. Definitely don't want to misinform people! I'll try and help move over the content or see if I can ask Rob Galanakis to mirror the normal map info over to the PC wiki.
Thanks!
Good info in this thread so far, thanks!
I don't ever do planar mapping, I use Modo's unwrap tool, which you select your seam edges and then it does the pelt/relax/whatever type unwrap for you, with various options. I think most 3d apps have tools that work basically the same these days.
Sometimes I will select more seams than I otherwise want in this step, and then stitch them back together, and that generally results in a more predictable unwrap.
Often times I will use the tweak tool in modo, or "soft move" to nudge things around into the general shape I want, then run a relax with a very small strength, and then straighten edges up. This saves a lot of time with really fussy shapes.
I try to always straighten out edges that are straight on the model, and always align my uv islands straight as well, if you have a lot of angles or randomly rotated uv islands your normals aren't going to be as crisp. It takes more pixels to represent an angle than it does a straight line. Having a uv island that is even a few degrees off can cause nasty aliasing type artifacts.
can i get some help here plz?
after 2 days of trying i got better result but still not perfect, i have giving to undersatnd that to keep may hard edges i need to split the uvs where they meet,so thats what i did and definitely i got better result but still have some artifact whith fine details, as you can notice the small details added on the hard edges.
i'm stuck here plz help
How are you setting up your cage in xNormal? I recently did a test with a pillar, take a look if you want.
http://www.polycount.com/forum/showthread.php?t=109870
Not 100% sure my method is perfect. If you're having trouble understanding why you have to split UV's where you have different smoothing groups, google for vertex splits / normals. Polycount wiki should have some info on vertex slipts and normals, also http://tech-artists.org/wiki/Beveling
the cage is left by defauflt (exported normals) i tried avreage didnt give me any better results, and i used different smoothing groups, depending on my uv shells.
And when to adjust the cage to get a better bake. At the moment I just "Inflate" the mesh, so to speak, and use it. For simple stuff that works with only very minor distortion, but I can imagine for a more complicated object, with notches and crevices, this could produce some weird things...
And I remember seeing, (not sure if it was misinformation), that if you're baking a cylinder, the caps should be much closer to the low-poly mesh than the sides are, to prevent distortion.
So, any tips on the actual building of a cage that supports quality baking? Or any good tutorials on the subject that get the EQ stamp of approval?
I think in general this thread should cover all of that stuff: http://www.polycount.com/forum/showthread.php?t=81154
Give that a read and let me know if you still have some specific Q's.
Generally as far as tweaking the cage goes I try not to do it, because you need to redo it with revisions, and understanding how your normals are getting averaged and which direction they are pointing will give you a lot of options to fix it with the mesh itself. IE: adding more sides to a cylinder to reduce waviness, adding bevels, cutting in one or two verts to fix skewed floater detail, etc.
Custom tweaking the cage is is something that works differently in different apps so I try to avoid doing it.
Also for something like a cylinder, adding in some extra sides is generally going to make the asset look better( a really jagged model with straight lines is still a jagged model). And if the section that you're getting issues on is too small/unimportant to add extra geo, its probably too small/unimportant to ever notice in game either and the best solution is just to ZOOM OUT AND STOP WORRYING. =D
1)I think I might have the terminology wrong...are UV splits and UV borders the same thing?
2)Are edges considered hard because its on a 90 degree bend or because the edge is between 2 separate smoothing groups?
3)Is this what you were refering to in text tools when you said
"add hard edges along your uv borders with a Max/Maya script."
When I ran this script I get this in the normals on the corners...is it due to my topology?
http://s7.postimage.org/ofynh0yix/question4.jpg
Thanks hugely in advance EQ, this is the stuff they don't teach in school and when they do we get errors and they say it's us and don't give a solution.
1. Yes uv splits are the same thing as uv borders.
2. Hard edges because you have smoothing groups on either side of the edge. In Maya you just select your edge and set it to hard, in max you have the convoluted smoothing group system, so really just different terms for the same thing.
3. This is because of your geometry, if you're viewing this asset in a synced workflow it will be fine, if not you will get smoothing errors. There isn't anything enherantly "incorrect" with the normal map content you have there, its doing exactly what it should, its just that those sort of things work better or worse depending on your combination of baker/renderer.
An easy way to avoid this sort of thing is to leave that detail in the normal map, the normal map can do that sort of detail very easily with minimal geometry in your low poly(though it wont affect your silhouette of course).
Having proper hard/soft edges (instead of all soft edges)
Splitting UV's where all the hard edges are
Used an averaged projection mesh (slightly inflated low-poly with all soft edges)
to generate a normal map and the results turned out as this:
The red arrows point to edges that are hard edges and have UV's split and the green arrow also points to an edge that is hard and has UV's split, but with the results that I want/expect for all the edges with a red arrow.
Is there something that I did wrong? Please do let me know if any additional information is needed.
*I am using Maya 2013 for the modeling and xNormal for generating the normal map.
I can't tell from that screenshot, but to me it looks perfectly fine once the Spec and Color maps come into play. Even without them it looks functional.
I don't think that black seam would look fine after I have textured it.
(I'll add better images after xmas.)
Maybe try with a less complex mesh and make sure you know how to get a seamless bake, and then come back to this?
I would say in general, you're probably using too many hard edges, it almost looks like every face has a hard edge here, which will mean a uv seam on every face too if you want to get a bake without seams or errors, so thats way, way too many seams.
As I understand, a proper Averaged Projection Mesh is a mesh that has the same topology as the in-game mesh, but with all soft edges, correct?
Yep =[
All the edges with the black gap are indeed all hard edges and they also have UV seams, which from what I understand, should be able to avoid getting black gaps.
The edge that the green arrow is also a hard edge and has split UV's. It is giving me the results I want. Is it right to assume with a proper set up, all of my edges will be able to look like that? Or is it unavoidable to have some gaps/seams?
On the topic of too many hard edges, I was under the (maybe wrong) impression that as long as the projection mesh was properly set up and the UV's split where the hard edges are, using hard edges would not be a problem as it helps minimize gradients on the normal maps.
So... is the lesson I should be learning from this is that I should still be using hard edges with discretion? I shouldn't make every hard angle from the concept/design a hard edge as that is technically incorrect? Please do correct me on anything that is wrong.
I will certainly do this.
Technically you should be able to bake a mesh that has hard edges on every edge and uv seams on every face and get a seamless bake. IE: a cube with hard edges on every edge(which is an easy test case to make sure your workflow is... working).
In practice you should avoid excessive use of hard edges, as it bumps up your vertex count and your uv seams, which makes texturing more time consuming. Generally I will stick to using hard edges only on my uv seams, and layout my uv layout in what I feel is a logical, common sense way. Then I will add in extra hard edges, and further break up my uvs only where needed to avoid smoothing errors, after doing test bakes and tests in the target game engine to see what needs to be fixed.
Now what is excessive use of hard edges gets very subjective, there is no "correct answer" or "rule" for this.
Yes that is pretty much it.
Yeah that sort of stuff is really things I like to avoid in general, you may have specific cases where it makes sense to do something else. I've seen a lot of people spend all sorts of time and effort doing really weird things with cages/baking/spiting every mesh chunk up and doing a different bake with it and things like that. That sort of stuff should really be avoided. Doing a quick tweak of your cage on 1 small area, or doing a quick 2nd bake to fix one small area is something I do occasionally myself too. The main bit of advice I want to make there is to avoid excessive tweaking that will take a long time to redo if you need to make a change that requires everything to be rebaked.
Yeah in theory that is a good point, though I find in reality if you're doing super low poly stuff, but still baking normal maps etc it is going to be a very low priority asset/very small on screen/etc. So generally its not a big deal. If you do find yourself working with extremely low triangle counts you may have to come up with some compromises/tricks to deal with that.
and a low-poly mesh, which is the default Maya cube. Since all the edges are hard edges, all the faces are split and is a separate island,
and an averaged projection mesh, which is a duplicate from low poly and all edges are set to be soft edges.
The normal maps generated from xNormal are still giving me gaps at the hard edges though, as the image below:
Please correct me on anything that I have done wrong and let me know if more information is needed.
Thanks in advanced.
It seems a little bit better but I'm still getting some hard edges. Are those unavoidable or there's still some tweaking I have to do for a truly seamless bake?
...Anybody else know?
A cube might not be the best test mesh because of its simple UV's.. currently what you've got is all hard edges on the low, so each face of the cube will be 1 uv island, since there is no benefit to stitching them (performance wise, texturing might be a different story). This setup is good because you can maximise uv space and the nm won't have shading all over it that doesn't compress well.
However, you can do cube with hard edges only on uv seams (when the uv is one t / cross shaped island) which will minimise splits but some areas will have worse shading. In the case of the cube I thinkkkk most people will agree that the few vertices saved are not worth the uv space lost and problems with the nm shading. This is why I don't think a cube is a great example, because it's not complex enough for all this stuff we're trying to do to increase performance to actually make a difference. When you've got a more complex model, minimising splits can save a huge number of vertices, and then all you have to do is be smart about where you place your hard edges and how this affects the normal map.
You're probably going to still get those edges when you zoom way the fuck in where there are hard edges on the low. Smoothing high poly will make them a little less noticeable, and it might even be that a synced workflow removes them completely, however I can't personally say I've tested this. You could try a handplaned result and see what you get.
This is a resolution/detail/uv seam issue.
Any time you have detail that is very fine, and you have a low resolution texture, especially along a uv seam you will see visible seam.
To fix:
- use a higher resolution texture
- don't use such fine detail in your highpoly (your edges are too tight here)
- don't zoom in so far
Any time you zoom in on a normal mapped object too far you will eventually see seams around your uv seams, if you use hard edges or not has no bearing on this. Its simply a matter of resolution.It may, in this case the edges on the highpoly are really just too tight. Which isn't very good for technical reasons like this, and doesn't make for a very appealing effect either(broader edges tend to show specular reflections better).
So to me, the solution is simple, soften up the edges.
I also tested softening up the edges a little and did make it look a lot better even up closer (the seam is visible, but not noticeable from intended viewing distance).
===============
Now I have another question, say I have a pillar like this:
(it is intended to be square in shape and not to fake the roundness using normal maps)
All edges are hard edges, which I would think I have to make all the edges into a seam and lay them out as separate islands if I want my normal map to be seamless without extreme gradients.
Unwrapping it like a cylinder, however, would get me less UV seams but unwanted gradients in my map.
Is there any advice on this situation? Or is this one of those grey areas that we'd have to make our own decisions depending on each different case?
Now, if you just want to have completely hard edges here, you don't even need to bake a normal map for it(unless there are other details that need to be represented in the normal map). If you don't do a baked normal map, you don't have to worry about spliting your uvs where you have hard edges.
You can also simply add in some extra geometry, bevel/chamfer the low poly to avoid smoothing errors, which will let you cut down on uv seams. For an object like this, you could give it 5-10x more polygons before it would even be an issue performance wise, under 500 or so tris a signle draw call(ie the cost of rendering any object) makes more impact than the triangle count.