Sorry if I was misleading. What I meant was it was intended to be a square pillar with rounded edges, like the cube earlier, but not a super low-poly cylindrical pillar that only has 4 sides.
So, making a bevel or chamfer on hard edges instead, in certain situations, can be used as an alternative to the "set hard edge then split UV" method?
Yeah absolutely, especially with very simple objects where triangle count isn't an issue. Really there isn't much need to optimize a model lower than 500 tris or so (other than LOD models and models that will be instanced hundreds of times or something).
When you're doing more complex assets you won't always have the choice, using bevels/chamfers everywhere you would use hard edges may significantly increase your geometry count.
First up, thanks for taking the time not just to write this awesome post but also for hanging around to answer the questions of us mere mortals. I've been battling the finer points of hard surface normal maps for years and years and, like you say, the amount of miss-information, general cluelessness and sometimes even lack of interest surrounding such a vital subject is outstanding.
I've read through your post a few times and tried to take in as much of the responses as possible but owing to a few of my uncertainties I'm still left feeling like I haven't quite grasped the bigger picture...
Firstly, (and I apologise if I've missed something vital here) how is it that the Averaged Projection Mesh process will "ignore smoothing groups of your low poly mesh" yet assigning different smoothing groups to UV islands makes a difference to the bake? Pretty sure I'm just being thick but I think I just need a slap and a push in the right direction on this one :P
Secondly, I'm trying to apply these techniques to an AKM assault rifle I'm working on at the moment and could use a couple of real-world examples of how you might tackle a few problem areas. I reckon this might just tie it all in enough for me to grasp it and would really appreciate your help!...
First up:
Out of these three options, how would you approach small areas of edge geometry like this? I would usually weld small edging areas such as this to larger portions of adjacent geometry to reduce vertex count but that naturally causes issues with an Averaged Projection mesh. Obvously the detail of such an area is unimportant but it causes a lot of distortion to the big area connected to it without some kind of hard-edgin' voodoo.
Secondly:
This concerns fiddly bits of detail on the low poly, things that cause some wierd artifacted normal effects but are surely too detailed to be eligable for supporting geometry or separate UV islands. Whilst I understand that the normal map is simply doing as intended and combating the existing crazy normals of the low geometry, it feels somehow... messy? I don't really understand the implications of that, if there are any, so just wanted to confirm that this is either - a) acceptable, or b) how I can prevent it if it's not...
Last but not least:
Now, I have this unwrapped as an unfolded box with the bottom portion flanked by the two side portions on either side, welded along the connecting edge. Would you suggest separating each of these main faces into their own UV island?
I suppose the constant issue I'm having is wondering where to draw the line in terms of UV islands. In that last image I could really go to town as there is SOOO many ~90 degree angles with such a shape as this. Any advice you can give to help me feel a little more comfortable with this method would be greatly appreciated! Sorry for what's been probably the longest, non-informative post poly count has ever seen but I really want to nail this hard surface lark
Reading EQs thread here about hard edges has gotten me thinking I have over over analyzed it all. I thought the new method was every single uv island, even ones from the same soft normal area (i.e. seam on cylinder side) required a hardened edge.
Though you can do this at no cost and only benefit for all models, with organic models especially, it can cause seams to appear faster at lower LODs. The vertex and its normals won't follow the normal map exactly at the seam. Which is easier to control on hard surface models most times when creating LODs, (I.e. it won't be zig-zagging seams).
So on organics, this is really only needed for the seam of "true" hard surface accessories. Which is good because I already followed that rule. It's just I misinterpreted somehow all uv islands needed hard edges, not just only between smoothing groups, which confused me.
Well if you're getting negative 'side affects' on organic models that outweigh the benefits you're getting (Ie the cylinder with the one hard edge on its sides from the uv seam still gets the benefit of less gradients across those two polygons on the normal map) then you'd have to compromise.
In the case of an organic model (say 100% smooth, no hard edges as in a sphere) what if you just used explicit projection to bake and used handplane for the tangent space map? In this case you've no hard edges so you won't get the gaps from explicit projection, but you will still have the extra gradients, but not the LOD issues. This would be faster than setting up a cage I imagine.
Reading EQs thread here about hard edges has gotten me thinking I have over over analyzed it all. I thought the new method was every single uv island, even ones from the same soft normal area (i.e. seam on cylinder side) required a hardened edge.
Though you can do this at no cost and only benefit for all models, with organic models especially, it can cause seams to appear faster at lower LODs. The vertex and its normals won't follow the normal map exactly at the seam. Which is easier to control on hard surface models most times when creating LODs, (I.e. it won't be zig-zagging seams).
So on organics, this is really only needed for the seam of "true" hard surface accessories. Which is good because I already followed that rule. It's just I misinterpreted somehow all uv islands needed hard edges, not just only between smoothing groups, which confused me.
Have I interpreted this thread correctly?
Yeah really there is no hard rule that you always need to add hard edges on your uv islands or anything like that.
With organics or anything that is mostly soft, blobby organic shapes, where you don't have a lot of extreme angles the benefits are less noticeable or not at all.
And yeah, with LODs you want to watch things like making the seam edge on a cylinder hard. If you keep that seam edge soft, but harden the top/bottom cap, that will work better for LODS.
so i've been reading this topic from page 1 - 9. Totally love it.
But i've got a couple of questions.
now firstly let me make clear that i can make normal map from a HP box (soft edges) to a lp box. (yei).
But what i want to know is, how far should my UV Islands be from eachother(?) so they dont bleed to another (?). I know that i should have a padding, but what exactly is "1pixel padding" and how do i know if it's correct?
so correct me if im wrong.
1. make high poly (soft edges so the NM turns out better)
2. Make LP, make sure that the silhoutte matches the HP
3. UVW my LP.
4. where i split my UV, is where the Hard edge should be
5. Make sure there's enough rooms between the UV Island (edgepadding, which im not gettign?!)
6. Export the HP (freeze transformations and Center the Pivot point)
7. Export the LP (same as above)
8. Import to xNormal
9. bake?
4. where i split my UV, is where the Hard edge should be
For clarity:
-Technically it is the other way around, where you have a hard edge, you must have a UV split. (but you don't need a hard edge where there is a UV split for things to look correct).
But the way most people work is they UV first
While doing your UV's think not only about texturing, but where your hard edges should be.
Then afterwards just run a script that transfers your UV borders to hard edges (instead of setting them manually, because doing it this way saves a lot of time).
Edge padding isn't to complicated, just keep a good and consistent amount of space between your UV shells.
when packing small details you tend to zoom in and pack everything tighter then it should be, so just keep that in mind
And someone correct me if I'm wrong, but like basic values are something like 2pixels for 1024, 4 for 2048, 8 for 4048 (or double those).
But don't fixate on that to much (like don't start measusing off exactly 8 pixels between every single UV shell, or youll be packing for 2 weeks )
When thinking about edge padding what you really need to consider is mip-mapping.
4 pixels of padding at 2048 may not be enough, when that texture mips down to 256 or so those 4 pixels will be sub-pixel size as 256 is 8 times smaller than 2048. 8-16 pixels for 2048 is probably a bit safer. Naturally when an asset is using a mip level that low, it should be very small on screen as well, so its not something to stress about too much.
Though this depends on your content too. Padding is good not just for normal map concerns, but to avoid color bleed as well. Say you have a very dark part of your texture and a very light part of your texture very close to each other on your uv layout. It will be more important to have a good deal of padding here than it will be if both areas are about the same color
And just to avoid any confusion, I'm talking about the actual space between the uv islands here, which is easy to check by exporting a copy of your uv channel at the desired resolution and measuring in photoshop.
Pixel padding/edge bleed in baking apps like max, maya or xnormal is another thing entirely, and you can literally never have too much, I usually just set it to 64 pixels or something like that.
I use 8px padding because my focus is UDK. The engine dictates the amount of padding needed.
With that said, I made a simple checker map that is made up of 8px by 8px boxes, that I just load into the background of the UV window and use that to space out the shells.
8 pixels regardless of resolution doesn't seem very logical.
If you have some documentation relating to UDK specific pixel padding it would be great to see that.
Sorry I meant different then what I typed.
I use an 8 px "gutter" for a 2048^2 and go down from there the smaller the texture sizes. I haven't researched recently if this is correct, but I read somewhere at some point that this was correct or at least I thought...ha!
-Technically it is the other way around, where you have a hard edge, you must have a UV split. (but you don't need a hard edge where there is a UV split for things to look correct).
But the way most people work is they UV first
While doing your UV's think not only about texturing, but where your hard edges should be.
Then afterwards just run a script that transfers your UV borders to hard edges (instead of setting them manually, because doing it this way saves a lot of time).
Edge padding isn't to complicated, just keep a good and consistent amount of space between your UV shells.
when packing small details you tend to zoom in and pack everything tighter then it should be, so just keep that in mind
And someone correct me if I'm wrong, but like basic values are something like 2pixels for 1024, 4 for 2048, 8 for 4048 (or double those).
But don't fixate on that to much (like don't start measusing off exactly 8 pixels between every single UV shell, or youll be packing for 2 weeks )
Really Appreciate the answer. And EQ thanks for this thread, noobs like me tend to learn by reading and doing. And this is one thread is for the one who wants a good read but also if one wants to try.
well, hopefully when i get home i have time to finish Monthly noob challenge 2 in time. the only thing holding me back atm is my normal map not turning out good!
Sorry for double post but, how important is it to triangulate your mesh before baking. and what are the pros and cons?
When you bake normal maps, they will be associated with the actual geometry normals, so, if you triangulate your mesh afterwards, you will destroy the normals direction on which was based the bake, resulting in useless normal maps.
When you bake normal maps, they will be associated with the actual geometry normals, so, if you triangulate your mesh afterwards, you will destroy the normals direction on which was based the bake, resulting in useless normal maps.
You have to triangulate only your lowpoly mesh.
This is generally good advice but can be a bit app specific. The safe advice is to always triangulate before baking, because:
1. When you export your model the triangulation direction may change depending on exporter/loader, resulting in X shapped smoothing errors.
2. When you triangulate your mesh your mesh normals *may* change this is true in Maya, but perhaps not in max.
In maya, you can avoid this by locking your normals before you triangulate(but after you bake), which I prefer to do, because working with triangulated meshes is annoying.
I always triangulate before exporting my mesh though.
Its pretty easy to test this all out in your workflow of choice and see if it makes a difference. If you have any doubt, triangulate before you bake.
I use an 8 px "gutter" for a 2048^2 and go down from there the smaller the texture sizes. I haven't researched recently if this is correct, but I read somewhere at some point that this was correct or at least I thought...ha!
So here's what i need help with, you can clearly see how i uv'ed my LP, and where i have my Hard edge (at the split for each island).
I have hopefully a good amount of edge padding between each island.
Sorry for so many images, just wanted to show you how it turned out for me by pictures instead of explaining.
and this is how my normal map turns out.
and my lp mesh with NM applied.
(i've smoothed the HP and i've redone the NM a couple of time, trying diffrent metods, with UV Seems Hard edge and i use the hard/soft borderline plugin).
This is generally good advice but can be a bit app specific. The safe advice is to always triangulate before baking, because:
1. When you export your model the triangulation direction may change depending on exporter/loader, resulting in X shapped smoothing errors.
2. When you triangulate your mesh your mesh normals *may* change this is true in Maya, but perhaps not in max.
In maya, you can avoid this by locking your normals before you triangulate(but after you bake), which I prefer to do, because working with triangulated meshes is annoying.
I always triangulate before exporting my mesh though.
Its pretty easy to test this all out in your workflow of choice and see if it makes a difference. If you have any doubt, triangulate before you bake.
Oh, thanks for the explanation, the only few bakes I've done were on Maya, and I've experienced the "triangulation afterwards" problem myself.
I still have to develop a proper workflow, and I'm not even convinced in which software to use, so
So here's what i need help with, you can clearly see how i uv'ed my LP, and where i have my Hard edge (at the split for each island).
I have hopefully a good amount of edge padding between each island.
Sorry for so many images, just wanted to show you how it turned out for me by pictures instead of explaining.
(i've smoothed the HP and i've redone the NM a couple of time, trying diffrent metods, with UV Seems Hard edge and i use the hard/soft borderline plugin).
Have you tried flipping your green channel?
Did you use an averaged projection cage or ray distance?
Where is the light in the scene compared to the object?
Quack: I used lights and I flipped the green channel (Xnormal bakes in x+z+y-) and Maya is supposed to have x+y+z+ . I Used Averaged Projection (If i got EQ correct, that means by using the cage in xnormal, is just as using average projection).
My main problem is mainly knowing when and where to set the hard edge. Probebly just need to do it a couple of times to get a hang of it!
As it goes over some tips for how to model the highpoly to avoid these sort of issues by using more slopes instead of right angles. Your model looks a little more like "A" from this post and I find modeling more like "B" can really help a lot to reduce waviness and lessen the need for as many hard edges(as your normals are softer, they don't need as much help).
As it goes over some tips for how to model the highpoly to avoid these sort of issues by using more slopes instead of right angles. Your model looks a little more like "A" from this post and I find modeling more like "B" can really help a lot to reduce waviness and lessen the need for as many hard edges(as your normals are softer, they don't need as much help).
Thanks EQ, so need to loosen up a little more on the edges, will be going through both topics and play around with NM all day after my gym session! CHEERS!
I feel like I'm still struggling to grasp a few of the basic facts - when I make something its own UV island and use Textools to define the separate smoothing groups, does that change the angle in which the projection rays are fired? I'm feeling like I've got this wrong since I thought baking with the averaged projection mesh/cage method only used a single smoothing group anyway? confused.com...
Sp0nge, my understanding is that if you were using the standard xnormal ray-projection, you'd be right about that but by using an averaged cage, you're ensuring there aren't any splits in the "rays".
Cheers Joopson, that clears up that theory Does however leave me with the question of how exactly does having a separate UV and smoothing group work to improve the bake? Like, how does it actually improve the end result? What's it doing on a technical level to reduce smoothing errors?
Cheers Joopson, that clears up that theory Does however leave me with the question of how exactly does having a separate UV and smoothing group work to improve the bake? Like, how does it actually improve the end result? What's it doing on a technical level to reduce smoothing errors?
A. If you use hard edges/smoothing groups, you must split your uvs otherwise you will get seam errors on the hard edge.
B. You don't need to use hard edges everywhere you have uv splits, but its essentially free to do so.
C. Using hard edges means your vertex normals will be less extreme near those hard edges, so your normal map has less work to do. This is especially important if your workflow isn't synced, but even if it is it provides certain benefits as laid out in the first post.
OK, so I think I'm beginning to see where my confusion is coming from - I'm failing to properly recognise the fact that there are two meshes at work here: the low and the projection... let me go over the facts as I'm beginning to understand them and maybe you can point out if I'm still not quite there:
1. smoothing groups on the low poly allow the averaged projection mesh to bake the normal map more cleanly. The fact that the projection mesh is averaged itself however is what sets it apart from the crappy 'explicit normals' technique or whatever its called where you get those nasty black seams.
2. concerning distortion of surface detail/wavy lines on curved edges, although the smoothing groups on the low poly mesh may help, the projection mesh is still warping them somewhat due to it being averaged - and this is where adding in some supporting loops etc (harking over to you're other post EQ) works to improve things.
Hopefully I'm getting somewhere now *crosses fingers*...
OK, so I think I'm beginning to see where my confusion is coming from - I'm failing to properly recognise the fact that there are two meshes at work here: the low and the projection... let me go over the facts as I'm beginning to understand them and maybe you can point out if I'm still not quite there:
1. smoothing groups on the low poly allow the averaged projection mesh to bake the normal map more cleanly. The fact that the projection mesh is averaged itself however is what sets it apart from the crappy 'explicit normals' technique or whatever its called where you get those nasty black seams.
Yes, mostly. An averaged projection mesh will fix seams resulting from gaps in the projection. It won't fix the issue of using hard edges but not spliting your uvs though, which results in black edge artifacts.
2. concerning distortion of surface detail/wavy lines on curved edges, although the smoothing groups on the low poly mesh may help, the projection mesh is still warping them somewhat due to it being averaged - and this is where adding in some supporting loops etc (harking over to you're other post EQ) works to improve things..
Almost. Because the projection mesh is averaged it has the same effect as not using any hard edges/smoothing groups in regards to projection angle(which is why that other thread is another topic entirely. So wavy lines and skewed details will not be affected by your SG/hard edges when using an averaged projection mesh.
SG/hard edges do help with smoothing errors, including smoothing errors from lack of resolution(little white line artifacts), it will work a little better with compressed textures, etc.
So its really important to separate what is a projection angle error, and what is a smoothing error.
Ahh ok, thanks for the feedback. I feel like things are starting to fall into place at long last. I'm going to play around and try drill some of this home but it's definitely making sense now. Your commitment to spreading the good word of proper hard surface projection practice is extremely appreciated :P
Alec Moody put together some fantastic video tutorials to go along with the release of Handplane which do a very good job of explaining a lot of the concepts in this thread along with providing some great real world examples
I have a question about Maya's "smoothing groups," ie hard/soft edges, and the set normal angle option. Should I just be using the hard and soft edges and not be using set normal angle? Does the set normal angle count as a hard edge when you set it to a certain degree? I have noticed the set normal angle option sometimes gives you better shading than just softening because of the less harsh smoothing angle, but I am not sure if this is going to cause problems with how my normal map bakes. I have done some testing, but I couldn't come up with anything conclusive.
Kind of an offshoot question. When doing your UVs for light maps should you respect all your hard and soft edges? Or can you sew shells together to save space?
I have a question about Maya's "smoothing groups," ie hard/soft edges, and the set normal angle option. Should I just be using the hard and soft edges and not be using set normal angle? Does the set normal angle count as a hard edge when you set it to a certain degree? I have noticed the set normal angle option sometimes gives you better shading than just softening because of the less harsh smoothing angle, but I am not sure if this is going to cause problems with how my normal map bakes. I have done some testing, but I couldn't come up with anything conclusive.
Harden and soften normals are identical to 'Set Normal Angle'. Softening simply uses a value of 180, while harden uses a value of 0. What does this mean? Set Normal Angle splits all normals for faces that are more than x degrees different in angle, where x is the input number. So harden normals splits all faces (more than 0 degrees of difference), while soften normals splits NO faces (cannot be more than 180 degrees of difference).
Using a value of ~40-60 can make your model look pretty nice, but will definitely cause problems with the normal map.
Kind of an offshoot question. When doing your UVs for light maps should you respect all your hard and soft edges? Or can you sew shells together to save space?
Don't worry about normals when making your lightmap UVs. Just maximize space and don't overlap. And remember that your lightmap is probably going to be really low res, so use generous padding.
In general unless its a really simple asset, you shouldn't really be using the auto SG stuff in max or the auto smoothing angle stuff in Maya, atleast not more than to quickly set up your basic smoothing that you then further refine.
Because of the nature of hard edges and uvs, you really have to take your uvs into account when setting up hard edges, so you can't just throw an auto smoothing angle on your asset and hope for the best.
In general unless its a really simple asset, you shouldn't really be using the auto SG stuff in max or the auto smoothing angle stuff in Maya, atleast not more than to quickly set up your basic smoothing that you then further refine.
Because of the nature of hard edges and uvs, you really have to take your uvs into account when setting up hard edges, so you can't just throw an auto smoothing angle on your asset and hope for the best.
Yea that makes sense. I just wasn't a 100% sure what was happening when you use set normal angle. Also does it matter if I set up smoothing groups after I triangulate? I am guessing it doesn't but I was just curious if there is a difference.
Yea that makes sense. I just wasn't a 100% sure what was happening when you use set normal angle. Also does it matter if I set up smoothing groups after I triangulate? I am guessing it doesn't but I was just curious if there is a difference.
It doesn't really but I'm not sure why you would ever want to? Working with tris is pretty annoying, as you can't select edge loops etc.
But using average normal with the cage, this cage need to be smoothed or isn't important?
Thanks
Sort of depends on exactly which app you're using, for instance in 3dsmax the cage will be generated for you with the projection modifier and you don't need to worry about it.
For xnormal, it would really depend on exactly how you're exporting your content.
Sort of depends on exactly which app you're using, for instance in 3dsmax the cage will be generated for you with the projection modifier and you don't need to worry about it.
For xnormal, it would really depend on exactly how you're exporting your content.
Sorry, I forgot specify I use only xnormal.
Can you explain when I warning about hard edges on cage? It is linked to ray distance casting?
Replies
So, making a bevel or chamfer on hard edges instead, in certain situations, can be used as an alternative to the "set hard edge then split UV" method?
When you're doing more complex assets you won't always have the choice, using bevels/chamfers everywhere you would use hard edges may significantly increase your geometry count.
I've read through your post a few times and tried to take in as much of the responses as possible but owing to a few of my uncertainties I'm still left feeling like I haven't quite grasped the bigger picture...
Firstly, (and I apologise if I've missed something vital here) how is it that the Averaged Projection Mesh process will "ignore smoothing groups of your low poly mesh" yet assigning different smoothing groups to UV islands makes a difference to the bake? Pretty sure I'm just being thick but I think I just need a slap and a push in the right direction on this one :P
Secondly, I'm trying to apply these techniques to an AKM assault rifle I'm working on at the moment and could use a couple of real-world examples of how you might tackle a few problem areas. I reckon this might just tie it all in enough for me to grasp it and would really appreciate your help!...
First up:
Out of these three options, how would you approach small areas of edge geometry like this? I would usually weld small edging areas such as this to larger portions of adjacent geometry to reduce vertex count but that naturally causes issues with an Averaged Projection mesh. Obvously the detail of such an area is unimportant but it causes a lot of distortion to the big area connected to it without some kind of hard-edgin' voodoo.
Secondly:
This concerns fiddly bits of detail on the low poly, things that cause some wierd artifacted normal effects but are surely too detailed to be eligable for supporting geometry or separate UV islands. Whilst I understand that the normal map is simply doing as intended and combating the existing crazy normals of the low geometry, it feels somehow... messy? I don't really understand the implications of that, if there are any, so just wanted to confirm that this is either - a) acceptable, or b) how I can prevent it if it's not...
Last but not least:
Now, I have this unwrapped as an unfolded box with the bottom portion flanked by the two side portions on either side, welded along the connecting edge. Would you suggest separating each of these main faces into their own UV island?
I suppose the constant issue I'm having is wondering where to draw the line in terms of UV islands. In that last image I could really go to town as there is SOOO many ~90 degree angles with such a shape as this. Any advice you can give to help me feel a little more comfortable with this method would be greatly appreciated! Sorry for what's been probably the longest, non-informative post poly count has ever seen but I really want to nail this hard surface lark
Thanks!
Sp0nge
Though you can do this at no cost and only benefit for all models, with organic models especially, it can cause seams to appear faster at lower LODs. The vertex and its normals won't follow the normal map exactly at the seam. Which is easier to control on hard surface models most times when creating LODs, (I.e. it won't be zig-zagging seams).
So on organics, this is really only needed for the seam of "true" hard surface accessories. Which is good because I already followed that rule. It's just I misinterpreted somehow all uv islands needed hard edges, not just only between smoothing groups, which confused me.
Have I interpreted this thread correctly?
In the case of an organic model (say 100% smooth, no hard edges as in a sphere) what if you just used explicit projection to bake and used handplane for the tangent space map? In this case you've no hard edges so you won't get the gaps from explicit projection, but you will still have the extra gradients, but not the LOD issues. This would be faster than setting up a cage I imagine.
Yeah really there is no hard rule that you always need to add hard edges on your uv islands or anything like that.
With organics or anything that is mostly soft, blobby organic shapes, where you don't have a lot of extreme angles the benefits are less noticeable or not at all.
And yeah, with LODs you want to watch things like making the seam edge on a cylinder hard. If you keep that seam edge soft, but harden the top/bottom cap, that will work better for LODS.
But i've got a couple of questions.
now firstly let me make clear that i can make normal map from a HP box (soft edges) to a lp box. (yei).
But what i want to know is, how far should my UV Islands be from eachother(?) so they dont bleed to another (?). I know that i should have a padding, but what exactly is "1pixel padding" and how do i know if it's correct?
so correct me if im wrong.
1. make high poly (soft edges so the NM turns out better)
2. Make LP, make sure that the silhoutte matches the HP
3. UVW my LP.
4. where i split my UV, is where the Hard edge should be
5. Make sure there's enough rooms between the UV Island (edgepadding, which im not gettign?!)
6. Export the HP (freeze transformations and Center the Pivot point)
7. Export the LP (same as above)
8. Import to xNormal
9. bake?
Is that the right workflow ?
For clarity:
-Technically it is the other way around, where you have a hard edge, you must have a UV split. (but you don't need a hard edge where there is a UV split for things to look correct).
But the way most people work is they UV first
While doing your UV's think not only about texturing, but where your hard edges should be.
Then afterwards just run a script that transfers your UV borders to hard edges (instead of setting them manually, because doing it this way saves a lot of time).
Edge padding isn't to complicated, just keep a good and consistent amount of space between your UV shells.
when packing small details you tend to zoom in and pack everything tighter then it should be, so just keep that in mind
And someone correct me if I'm wrong, but like basic values are something like 2pixels for 1024, 4 for 2048, 8 for 4048 (or double those).
But don't fixate on that to much (like don't start measusing off exactly 8 pixels between every single UV shell, or youll be packing for 2 weeks )
4 pixels of padding at 2048 may not be enough, when that texture mips down to 256 or so those 4 pixels will be sub-pixel size as 256 is 8 times smaller than 2048. 8-16 pixels for 2048 is probably a bit safer. Naturally when an asset is using a mip level that low, it should be very small on screen as well, so its not something to stress about too much.
Though this depends on your content too. Padding is good not just for normal map concerns, but to avoid color bleed as well. Say you have a very dark part of your texture and a very light part of your texture very close to each other on your uv layout. It will be more important to have a good deal of padding here than it will be if both areas are about the same color
And just to avoid any confusion, I'm talking about the actual space between the uv islands here, which is easy to check by exporting a copy of your uv channel at the desired resolution and measuring in photoshop.
Pixel padding/edge bleed in baking apps like max, maya or xnormal is another thing entirely, and you can literally never have too much, I usually just set it to 64 pixels or something like that.
With that said, I made a simple checker map that is made up of 8px by 8px boxes, that I just load into the background of the UV window and use that to space out the shells.
Can you please elaborate on that?
8 pixels regardless of resolution doesn't seem very logical.
If you have some documentation relating to UDK specific pixel padding it would be great to see that.
Sorry I meant different then what I typed.
I use an 8 px "gutter" for a 2048^2 and go down from there the smaller the texture sizes. I haven't researched recently if this is correct, but I read somewhere at some point that this was correct or at least I thought...ha!
[edit]Looks like I may have read on the PC wiki: http://wiki.polycount.net/EdgePadding
Really Appreciate the answer. And EQ thanks for this thread, noobs like me tend to learn by reading and doing. And this is one thread is for the one who wants a good read but also if one wants to try.
well, hopefully when i get home i have time to finish Monthly noob challenge 2 in time. the only thing holding me back atm is my normal map not turning out good!
When you bake normal maps, they will be associated with the actual geometry normals, so, if you triangulate your mesh afterwards, you will destroy the normals direction on which was based the bake, resulting in useless normal maps.
You have to triangulate only your lowpoly mesh.
This is generally good advice but can be a bit app specific. The safe advice is to always triangulate before baking, because:
1. When you export your model the triangulation direction may change depending on exporter/loader, resulting in X shapped smoothing errors.
2. When you triangulate your mesh your mesh normals *may* change this is true in Maya, but perhaps not in max.
In maya, you can avoid this by locking your normals before you triangulate(but after you bake), which I prefer to do, because working with triangulated meshes is annoying.
I always triangulate before exporting my mesh though.
Its pretty easy to test this all out in your workflow of choice and see if it makes a difference. If you have any doubt, triangulate before you bake.
Ok cool, yeah I stick to 8-16 pixels for 2K personally, that wiki article is very good, showing the whole issue visually.
I have hopefully a good amount of edge padding between each island.
Sorry for so many images, just wanted to show you how it turned out for me by pictures instead of explaining.
and this is how my normal map turns out.
and my lp mesh with NM applied.
(i've smoothed the HP and i've redone the NM a couple of time, trying diffrent metods, with UV Seems Hard edge and i use the hard/soft borderline plugin).
Oh, thanks for the explanation, the only few bakes I've done were on Maya, and I've experienced the "triangulation afterwards" problem myself.
I still have to develop a proper workflow, and I'm not even convinced in which software to use, so
Have you tried flipping your green channel?
Did you use an averaged projection cage or ray distance?
Where is the light in the scene compared to the object?
And i did not use any lights. This is why im new :poly137: :poly137: :poly137:
Am i supposed to have light in the scene?
using maya 2012 student vers.
Have you tried flipping your green channel?
Did you use an averaged projection cage or ray distance?
My main problem is mainly knowing when and where to set the hard edge. Probebly just need to do it a couple of times to get a hang of it!
rules for hard edges.
Adjacent faces are 90 degrees or more.
Any edge that is hard MUST be a UV border edge.
I think it will help with some of the wavy edge issues you're getting there.
This post here specifically: http://www.polycount.com/forum/showpost.php?p=1288654&postcount=9
As it goes over some tips for how to model the highpoly to avoid these sort of issues by using more slopes instead of right angles. Your model looks a little more like "A" from this post and I find modeling more like "B" can really help a lot to reduce waviness and lessen the need for as many hard edges(as your normals are softer, they don't need as much help).
Thanks EQ, so need to loosen up a little more on the edges, will be going through both topics and play around with NM all day after my gym session! CHEERS!
A. If you use hard edges/smoothing groups, you must split your uvs otherwise you will get seam errors on the hard edge.
B. You don't need to use hard edges everywhere you have uv splits, but its essentially free to do so.
C. Using hard edges means your vertex normals will be less extreme near those hard edges, so your normal map has less work to do. This is especially important if your workflow isn't synced, but even if it is it provides certain benefits as laid out in the first post.
1. smoothing groups on the low poly allow the averaged projection mesh to bake the normal map more cleanly. The fact that the projection mesh is averaged itself however is what sets it apart from the crappy 'explicit normals' technique or whatever its called where you get those nasty black seams.
2. concerning distortion of surface detail/wavy lines on curved edges, although the smoothing groups on the low poly mesh may help, the projection mesh is still warping them somewhat due to it being averaged - and this is where adding in some supporting loops etc (harking over to you're other post EQ) works to improve things.
Hopefully I'm getting somewhere now *crosses fingers*...
Yes, mostly. An averaged projection mesh will fix seams resulting from gaps in the projection. It won't fix the issue of using hard edges but not spliting your uvs though, which results in black edge artifacts.
Almost. Because the projection mesh is averaged it has the same effect as not using any hard edges/smoothing groups in regards to projection angle(which is why that other thread is another topic entirely. So wavy lines and skewed details will not be affected by your SG/hard edges when using an averaged projection mesh.
SG/hard edges do help with smoothing errors, including smoothing errors from lack of resolution(little white line artifacts), it will work a little better with compressed textures, etc.
So its really important to separate what is a projection angle error, and what is a smoothing error.
much love!
[ame="http://www.youtube.com/watch?v=ciXTyOOnBZQ"]Controlling Shading Behavior - YouTube[/ame]
Kind of an offshoot question. When doing your UVs for light maps should you respect all your hard and soft edges? Or can you sew shells together to save space?
Harden and soften normals are identical to 'Set Normal Angle'. Softening simply uses a value of 180, while harden uses a value of 0. What does this mean? Set Normal Angle splits all normals for faces that are more than x degrees different in angle, where x is the input number. So harden normals splits all faces (more than 0 degrees of difference), while soften normals splits NO faces (cannot be more than 180 degrees of difference).
Using a value of ~40-60 can make your model look pretty nice, but will definitely cause problems with the normal map.
Don't worry about normals when making your lightmap UVs. Just maximize space and don't overlap. And remember that your lightmap is probably going to be really low res, so use generous padding.
Because of the nature of hard edges and uvs, you really have to take your uvs into account when setting up hard edges, so you can't just throw an auto smoothing angle on your asset and hope for the best.
Yea that makes sense. I just wasn't a 100% sure what was happening when you use set normal angle. Also does it matter if I set up smoothing groups after I triangulate? I am guessing it doesn't but I was just curious if there is a difference.
It doesn't really but I'm not sure why you would ever want to? Working with tris is pretty annoying, as you can't select edge loops etc.
http://www.scriptspot.com/3ds-max/scripts/quadrangulate
But using average normal with the cage, this cage need to be smoothed or isn't important?
Thanks
Sort of depends on exactly which app you're using, for instance in 3dsmax the cage will be generated for you with the projection modifier and you don't need to worry about it.
For xnormal, it would really depend on exactly how you're exporting your content.
Sorry, I forgot specify I use only xnormal.
Can you explain when I warning about hard edges on cage? It is linked to ray distance casting?
Thanks
This is the best workflow? Thanks