Doing the unwrap right now. Not sure about how I did my packing, and there are a couple problem areas.
UVs:
This is right under the edge just above the grip. Not sure if this amount of distortion is acceptable. Otherwise, I'll have to add another seam:
This is a little bit harder to see. It's the ridge on the stock, just above the stock release button. Again, I'm not sure if this is acceptable, or if I should unwrap it differently:
As for the UVs. Most of the islands are normalized. Things that are close to the camera are a little bigger than the rest. The rear sight and base for the sight are noticeably larger compared to other elements. I hope I'm doing that right. I don't want to bake at all until I've gotten some feedback.
Edit: I'm not sure about my baking setup. My understanding is that you want to only separate the objects that will move, such as the pump on a shotgun, or a magazine. However, in the past, I've run into bake errors because of parts' normals baking onto other parts. So if close parts are baked, then they will affect each other's normals. I was thinking of doing two bakes, one for my normals where I'd separate every single element regardless of whether or not they would move, and the other for my AO and I'd only separate objects that move. This seems inefficient, and I've never heard of this workflow before, so I'm not sure what to do.
I'll just fiddle around with xNormal until I'm sure of what to do, since I've never gotten that to work right.
You've got the right idea for the most parts. Your UV map is good. There is some wasted space, and I see some things that could be mirrored which would give you even more space to play with. Not too bad, though.
The stretching on the grip does look a bit much. You may have to cut some edges there to relax it. About the stock release area, be sure to cut edges at every hard edge. You can smooth edges at seams, but every hard edge needs a seam. That should help you address that area.
About baking, manually explode the high poly, low poly, and cage. You can still bake it all at once, just translate meshes in an arbitrary number on one axis (I use 5 or 20, depending on scale). That'll fix intersecting. Note* this step is less of a hassle when you make habits to combine meshes wherever possible on the low poly
Forgive me if i am wrong, but in regards to your above screenshot it would appear you have separate smoothing groups on your low poly model but from the way the checker board is tiling, would suggest you have unwrapped the main body as one UV island. Thus you have edge splits but no UV splits with padding which may result in Normal Map errors when you get to the stage of baking.
So where you have the raised metal plate with a champer wihtn your red circle you would have two options
1 - Smooth the flat face, the champfered faces and the buttstock as a single smoothing group. Benefit is you can keep that entire section as a single UV island so will be better for texturing. However you may encounter smoothing issues on your low poly, which if they are subtle enough wont be too bad as the normal map will override the low poly smoothing. If however the smoothing artifacts are very pronounced, the normal map will not cope in covering it up in whcih case you may need to add some supporting edges to control the smoothing
2 - Have separate smoothing groups so you don't have smoothing errors on the low poly so looks cleaner, but you will have to split the different smoothing group elements into separate UV islands with a UV seam and padding.This may be more problematic with texturing later if you are wanting to put scratches and dirt on the raised and recessed areas as you will have to match them up on two separate areas of the texture.
I went back and edited some areas to utilize as much UV space as possible. I know there are some areas that can be mirrored. In fact, I originally mirrored those areas, but they apparently got moved around when I normalized the entire mesh, and I guess I just didn't notice. I'll be editing it so I can get the mirroring in.
As for the grip, I tried adding some seams along the back, top corner, as shown here:
but when I relaxed the UVs, they started to overlap. So I'm not sure where to place my seams. I know I could just make the entire back of the grip its own island, but that would be difficult to texture.
Concerning the stock. I'm not sure I understand what you're saying. Should I totally detach that one polygon since it has a hard edge, like so (sorry if it's hard to see):
So basically, I should totally separate my hard surfaces in my UV layout?
And lastly, as for baking, I plan on baking two maps: the normal map, and the AO map- pretty standard. If I explode my model entirely so that no two elements are touching, then my normals will bake nicely. However, my AO will bake poorly. Should I do two bake scenes, one for my AO, and the other for my normals? That just seems inefficient.
To be honest, I never touched any of my smoothing groups. They were automatically assigned when I created the lp. I have a very loose, probably inaccurate understanding of how to use smoothing groups, and how they affect the normal maps. Some people have told me that I should have all of my mesh assigned to smoothing group 1. Other people have told me that I have to assign them manually. I'm not sure what to believe.
So anyways, what the slow clanking of the gears in my brain came up with is that I need to assign smoothing groups and create UV islands so that nothing clashes. So in this instance, that small, one polygon hard piece of mesh has its own smoothing group, but isn't a different UV island. So to fix this, you're saying that I should either make it its own UV island, which would be a bit tougher to texture, or I should take the flat piece of geo and make it smoother by chamfering, thus helping the texturing process. Although I'm still not sure how the latter would introduce smoothing errors. I thought the only problem would be a bit of UV distortion.
I think what you're both saying is kind of making sense, but it's not quite there. I don't want to even think about baking until I have a good understanding of what I'm doing.
Download textools and use the UV shells to smoothing groups tool. This will save hours of fiddling and it will ensure it's done 100% correctly.
Each UV shell should have its own smoothing group. You want to separate the shells based on where the hard edges are. Having a UV split, and thus different smoothing groups, on an edge where there isn't close to a 90 degree angle will create an unwanted line down that edge.
Regarding the exploded bake, you animate the highpoly to explode, then use a editpoly modifier in the lowpoly modifier stack, this sits underneath the projection modifier. So when you want to bake your normals, you slide the animation slider to the point where the're exploded, then enable the editpoly modifier in which you moved the elements. For baking ao, you simply slide the slider back, and disable the exploded editpoly.
Some people have told me that I should have all of my mesh assigned to smoothing group 1. Other people have told me that I have to assign them manually. I'm not sure what to believe.
In essence...those "people" are both correct in my experience, but in order not confuse you further i suggest you look at the 3D Motive tutorials. They are top notch and the tutorial set link below, Alec Moody goes through all of the tips and tricks associated with Normal Maps and how to get the best out of them.
There are differing points of view on smoothing. I add smoothing groups because it makes for better maps. Best plan is to try it out both ways for yourself to see which gives you best results. I will say if you haven't even touched smoothing groups yet, and are considering baking, I urge you to stop and do research.
I also urge you not to automate any of this vital processes until you actually undestand them. I can't put that any plainer.
And lastly, as for baking, I plan on baking two maps: the normal map, and the AO map- pretty standard. If I explode my model entirely so that no two elements are touching, then my normals will bake nicely. However, my AO will bake poorly. Should I do two bake scenes, one for my AO, and the other for my normals? That just seems inefficient.
Sooo bake it twice, once for normal and once with local AO? Look, no professional around here can hold your hand through each of these phases. I've eluded to study over and over. Test things out, study, adjust, rinse, repeat.
I think what you're both saying is kind of making sense, but it's not quite there. I don't want to even think about baking until I have a good understanding of what I'm doing.
You've made good progress. Frankly, I don't have the time to teach you step-by-step. No professional here does. Be patient and do you best to understand this critical step in game art workflow.
To be honest i would try a bake without exploding. I have done countless
hard surface models with high/ low res baking and the only components i explode, are components which shall move in game, such as wheels on a vehicle. If i left them in place, under the vehicle and under the ground plane, i would bake in AO shadowing which look wrong when the wheel rotates. For sure if you have some interesting details, part of that geometry will bake into the normal map so the normal map doesn't look as clean...but...the low poly model geometry will hide these minor baking artefacts so you don't notice them anyway. To explode something like a gun may be irritating enough, to then move the high poly, move your low poly so everything lines up, then make sure you cage is suitably expanded etc, but some of my vehicles have hundreds of separate elements to the mesh so to do this is to add days and days of hassle onto the baking process to avoid artefacts which are hidden anyway
All i would suggest, is try it and see. Trial and error. Finish you UV'ing, do your smoothing groups to what you understand now and try some bakes. No matter how many models i have done, i always do may trial bakes, end up changing UV's changing geometry until it looks right. The more you do, the more you pre-empt issues before they become issues, but still there will be a detail which is not quite right needing to be fixed.
Alright, I've gone through a good amount of threads and I think I've got a pretty good understanding of how this works. I did some editing to my UVs to break up some areas that shouldn't be connected. I also mirrored some UV islands. The only way I got the distortion to go away on the grip was to cut the entire back of the grip and make that its own island. Then I used texTools to add smoothing groups based on UV islands. Of course, since I split the grip into two islands, it added a hard edge on the seam, but I just edited the smoothing groups. One concern I have is for the rail mounts. I'm not sure if my method of unwrapping is good. I know that the more islands you have, the more double verts you have, and the less optimized it is. So if I broke off all of the hard surfaces from each of the rail mounts, I'd be dealing with 100s of one polygon UV islands, and a shit tone of double verts. So far, I left the rails as they were in my last update.
Anyways, I'm having some weird issues when baking. I've done ~6 bakes now, and they've all turned out relatively the same, which a bunch of weird errors.
I'm getting some weird spots in my render viewport:
I'm using the default scanline renderer, which is what I used for my Spas 12, and it didn't return any issues like this. I've tried to copy my scene settings from my spas 12 bake file as accurately as possible so I can eliminate any variables, but to no avail.
This is what the normal bake looks like:
I've only rendered it at 1024, and with no AA, but that's irrelevant since the errors have nothing to do with AA. Here's what the model looks like in 3Ds max with hardware shading enabled:
As you can see, it looks terrible. Some areas are baking okay while most areas have really bad artifacts. I'm positive I'm setting up my bake correctly. I've lined up the HP mesh with the LP. I've exploded the model using an edit poly mod so I can revert it for the AO bake. I've added keyframes to the HP so I can revert that explosion as well. I've picked all of the HP mesh in my projection mod. I've edited the cage so it's surrounds all of the HP mesh. I've done bakes with AA @2048x2048 and it yielded the same results.
So I guess I'm not sure if it's my bake setup, unwrap, LP. My unwrap was already fine, and almost nothing has changed. Smoothing groups are fine. I have no place where theres smoothing group split with no UV split. And I've baked in 4 different files, all with different setups. I'm not sure what I'm doing wrong.
Edit: I've also made sure that its rendering the correct map. Tangent space. No channels are flipped on render. And I've even tried flipping channels in the material setup to see if it'd help, and it didn't.
I sometimes get this with supersampling, try turning that off and do a test bake. You may need to do a reset xform or every component in involved in the bake, I've had that solve this issue before. Remember you can export the cage and re-use it, so you don't have to set that up again.
You may want to preview the bake in something like Marmoset, I find that most helpful for previewing bakes.
Hmmm, I reset xform for the low poly objects, as well as the cage(otherwise I couldn't select it). If I reset xform for the HP elements, it'll scale some up and rotate others. Am I supposed to reset xform for the HP stuff, too?
Regardless I did a test bake and this is the result:
Definitely lost right now.
Edit: I forgot to mention, I also disabled supersampling, and the black dots have disappeared from my render, though I'll need AA at some point.
Sometimes when you reset x form, normals flip, so faces are facing inwards instead of outwards and that would be my first assumption based on your yellow/ green normal map. By default, 3D Max renders both sides of polygons so right click, object properties and check "backface cull." I imagine your model will looks all wrong with normal in the wrong direction. Just select all and flip faces.
In regards to the better normal map bake, which was a couple of posts up. I have drawn over where there are errors on your normal map which would hint towards smoothing group issues on your low poly. For large flat surfaces which are signature parts of the model you do not want to have smoothing errors on the low poly.
Whisky
EDIT: For previewing, many people do use Marmoset a mentioned above but this is a third party tool whcih costs $$$...so i use Xoliul Shader in 3D Max which is spot on
Yeah, I definitely have my smoothing groups set up wrong. This is the receiver UV blodout:
Since the whole thing doesn't (or shouldn't) have any hard edges, I unwrapped the whole thing as one UV island. Then I assigned all of the mesh on the island to one smoothing group, ensuring that there are no weird hard edges. However, this obviously didn't work since I have smoothing errors all over the thing. So I'm not sure what to do. I'm thinking I should add some supporting geometry to help with the smoothing, but I just spent an entire day taking redundant geo out... Kind of stuck right now.
I did download the quixel suite and I viewed the map in there. It looked better than what Max showed, though it still has a lot of noticeable errors: the smoothing errors on the receiver, mag, bottom, stock, and the aliasing due to the lack of AA.
Flipping the green helped with some of the details. I still have to figure out how to do my smoothing groups though to get rid of those smoothing errors.
Alright, I've finally had some luck! Sorry for the quick, dirty render, but here's my best bake so far:
Still obviously not ideal, and I've got some improvements to make, but it's getting there. All of the details are there, and there aren't many horrendous smoothing errors. I ended up breaking up the UV shell for my receiver a bit so I could break up the smoothing groups safely. This seemed to fix most of the smoothing issues with the receiver, but it'll make texturing a bit more difficult. I also reset xform on my LP which, for some reason, also flipped all of the normals. This also made my cage push the wrong way. To fix it I just removed the projection mod and went into the edit poly mod that I used to explode the model and I just flipped all the faces. In my LP file, I also triangulated all of the mesh.
Anyways, the most prominent issue now is the "freckles" on bake:
I'm gonna try enabling light tracer since that seems to have helped others, at the expense of a short render time. Hopefully I'll have an acceptable bake by the end of tonight.
Edit: After a couple hours of rendering and re-rendering, the black specs are still there. I've tried using light tracer, not using it, filtering the map, AA, no AA. Not sure what's going on. Other than that, my render looks alright. I've got a few errors that will be worked out by breaking some UV shells apart, but I really want to get the specs to disappear before I go back.
Using Hammersley seems to soften the specks, but it doesn't remove them.
It's getting cleaner, but it's not perfect.
Here's an up close shot of the mag where the specs are still visible:
Also, when I view my model using 3Do, there are a lot of smoothing errors. However, viewing the model in 3Ds max makes it look fine. I'm not sure why this is/whether or not it's something I need to fix.
What version of Max are you using? What size map are you rendering out? Do some test bakes at a smaller size first. If you still see specks, try and fix em in their respectable channels. Might I suggest rendering using Hit only matching material ID instead of an exploded NM render? Good luck.
[ame="http://www.youtube.com/watch?v=hTIJOYx6VPc"]Hit Only Matching Material IDs - YouTube[/ame]
Using Hammersley seems to soften the specks, but it doesn't remove them.
It's getting cleaner, but it's not perfect.
This is a bit-depth precision issue. There are not enough values in an 8-bit per channel image to represent the smooth gradients that you need to account for your low poly's mesh normals. Max dithers or adds noise to try to hide this.
Try adding smoothing group splits/hard edges at your uv seams (there is a fuction with textools I think that does this for max).
Also, when I view my model using 3Do, there are a lot of smoothing errors. However, viewing the model in 3Ds max makes it look fine. I'm not sure why this is/whether or not it's something I need to fix.
This is because 3Do uses Unity which has a different tangent space than Max. Tangent space is specifically how the renderer/shaders calculate tangents and bi-normals, and this varies from app to app. You can bake an object space map and convert to Unity tangent space with Handplane, or you can bake in Xnormal with the Unity tangent space plugin.
Or skip all that and load your mesh into Marmoset Toolbag 2 and change your tangent space (in mesh properties) to Max, which should give as good as results as possible. TB2 supports multiple tangent spaces like Maya and Xnormal as well.
Also make sure you triangulate your mesh before exporting.
I'm using Max 2012 64-bit and I'm rendering out at 2048x2048. I've never thought of using mat IDs. That should save me the hassle of animating an explosion of the model and using an edit poly mod on the LP to explode that. Thanks for the tip
I'm rendering out to an uncompressed TGA 32-bit file. I just went back and redid some of the UVs to split them up, and then I used texTools to assign SGs by UV shells. I've been triangulating the LP before export for a while now since I heard that it can mitigate some smoothing issues. I also went back to the HP and LP and reset xform, as a lot of people have said that it helps.
I'll update when I get another render...
Edit:
Thanks a lot for the tips!
This is my best render so far:
I'll split the UVs on the rear sight guard to get rid of those smoothing errors. That mat ID method worked like a charm. There still seems to be a tiny bit of noise, but it's so subtle that I'm not going to worry about it. Thanks for the help
Coming along nicely! You're still uploading shots with a lot of wasted negative space, though. Even WIPs need composition. Minor thing, but something to think about nonetheless.
I just got Marmoset and am starting to texture, but I'm now getting a lot of smoothing errors. They don't appear in Max, but they do in Marmoset. I have the tangent space option set to 3Ds Max in toolbag, but it's still giving errors. Is this something I need to worry about? Marmoset is reading directly from the 16bit PSD.
However, in Max, only one error is really visible. All of the others are either non-existent or extremely subtle. I'm not sure why there's a difference going from Max to Marmoset. I'm planning on rebaking normals to fix a couple issues, but it seems like I can never get it perfect
Here's a shot of the model with the normal map in 3Ds max:
I just got Marmoset and am starting to texture, but I'm now getting a lot of smoothing errors. They don't appear in Max, but they do in Marmoset. I have the tangent space option set to 3Ds Max in toolbag, but it's still giving errors. Is this something I need to worry about? Marmoset is reading directly from the 16bit PSD.
It looks like your mesh normals are screwed up, make sure you're exporting normals (not just smoothing groups) from max via OBJ. Try FBX alternatively.
Also are you sure you have a 16bit file? How exactly did you bake it?
One thing to note, image based lighting is going to make any minor smoothing error that may not show up in Max with a basic shader much more pronounced.
Ok sweet, you may be able to fix those areas by having a little cleaner topology, mainly avoiding really long, thin triangles. I see some smoothing issues on the rails too, which you can probably fix with smoothing groups/uv splits as well (that sort of shape is almost impossible for a normal map to account for).
Ha, I goofd. I went back and compare the old model with the new model and they're exactly the same. My mind was playing tricks on me or something. I also compared it to an FBX and they were all the same. I'll go back and rebake normals after editing some geo and splitting some UV islands.
Alright. Done. I split a bunch of the UVs for the rail mounts so they'd smooth a bit better. I also added a couple edges to take away a few really long, thin triangles. And then I split a UV shell that was causing most of the trouble. I'm not getting any visible smoothing errors any more (none that I can see). I'll have to rebake AO, but oh well.
Alright, I just went back and edited UVs for (hopefully) the last time. I took out a smoothing error on the bottom part of the gun where the mag goes in. I also cleaned up some smoothing on the stock. The bake is looking pretty much perfect now.
A couple renders. Let me know how I can present it better if you see something off
I've been reading up on PBR, and I'm developing the asset for UE4, so I need to use a metalness workflow. I feel like I have a good understanding of how the different maps work. So basically, albedo is both your spec and diffuse. Metalness controls how metal-like a surface is and should usually be either black or white. For metallic surfaces, the specularity is derived from the albedo map, and the diffuse is locked to black. For non-metallic surfaces, the diffuse is derived from the albedo map, and the specular is locked at .o4. As usualy, gloss just controls the width of the specular highlight. Correct me if I'm wrong on any of that.
However, when I use an albedo map in Marmoset, it still gives me an option to set the color? I thought the diffuse color was derived from the actual map. and not constant? Not sure what's going on there.
Anyways, I've been trying to reproduce this plastic surface:
From what I understand, the metalness value should obviously be at 0. The diffuse should just be the color, so a darkish grey. It should be relatively rough, so a lower gloss value, giving it a wide highlight. However, with a low gloass value, and a diffuse color of almost black, the plastic looks grey:
So I thought that maybe my gloss is too low, and the highlight is just making the whole gun look brighter than it really is, so I made it a little glossier. That only made it look really reflective, which it should not.
I can't seem to find many resources on metalness workflows. I'll just keep playing with it. I'd love some help though.
With pbr you can use colors really close to black, I think one of these charts lists acrylic paint, that should be close to the albedo value you want. Also remember to try different different preset sky's in marmoset and different background colors. Colors are relative to each other, dark gray looks blacker on whiter backgrounds, and lighter on darker backgrounds.
I'm not an expert by any means but this worked for me, so I hope it helps.
The effect for the polymer grip on this knife I recently made is more pronounced than the plastic on your UMP, but I hope this gives you a good starting point to play around with.
I first used some generic noise I generated in PS, then I passed it through a normal map filter. I then used the combine normals script for PS (just don't forget to use a mask lol.)
Then I generated some maps from it. I plugged the cavity map into the gloss, and multiplied it a bit. After that I left the albedo pretty much devoid of the noise because that seemed to ruin the effect. The metalness was pretty much just a mask, I didn't really bother much with it. The scuffs and scratches weren't in the normal map, they were really just blacked out in both the gloss and albedo, which seemed to get the job done.
Just remember that the noise in the gloss should come from a cavity map derived from the combined normal, and that there should be not much noise in the albedo.
Replies
UVs:
This is right under the edge just above the grip. Not sure if this amount of distortion is acceptable. Otherwise, I'll have to add another seam:
This is a little bit harder to see. It's the ridge on the stock, just above the stock release button. Again, I'm not sure if this is acceptable, or if I should unwrap it differently:
As for the UVs. Most of the islands are normalized. Things that are close to the camera are a little bigger than the rest. The rear sight and base for the sight are noticeably larger compared to other elements. I hope I'm doing that right. I don't want to bake at all until I've gotten some feedback.
Edit: I'm not sure about my baking setup. My understanding is that you want to only separate the objects that will move, such as the pump on a shotgun, or a magazine. However, in the past, I've run into bake errors because of parts' normals baking onto other parts. So if close parts are baked, then they will affect each other's normals. I was thinking of doing two bakes, one for my normals where I'd separate every single element regardless of whether or not they would move, and the other for my AO and I'd only separate objects that move. This seems inefficient, and I've never heard of this workflow before, so I'm not sure what to do.
I'll just fiddle around with xNormal until I'm sure of what to do, since I've never gotten that to work right.
The stretching on the grip does look a bit much. You may have to cut some edges there to relax it. About the stock release area, be sure to cut edges at every hard edge. You can smooth edges at seams, but every hard edge needs a seam. That should help you address that area.
About baking, manually explode the high poly, low poly, and cage. You can still bake it all at once, just translate meshes in an arbitrary number on one axis (I use 5 or 20, depending on scale). That'll fix intersecting. Note* this step is less of a hassle when you make habits to combine meshes wherever possible on the low poly
So where you have the raised metal plate with a champer wihtn your red circle you would have two options
1 - Smooth the flat face, the champfered faces and the buttstock as a single smoothing group. Benefit is you can keep that entire section as a single UV island so will be better for texturing. However you may encounter smoothing issues on your low poly, which if they are subtle enough wont be too bad as the normal map will override the low poly smoothing. If however the smoothing artifacts are very pronounced, the normal map will not cope in covering it up in whcih case you may need to add some supporting edges to control the smoothing
2 - Have separate smoothing groups so you don't have smoothing errors on the low poly so looks cleaner, but you will have to split the different smoothing group elements into separate UV islands with a UV seam and padding.This may be more problematic with texturing later if you are wanting to put scratches and dirt on the raised and recessed areas as you will have to match them up on two separate areas of the texture.
Hope this makes sense for you
Regards
Whisky
@Polygoblin
I went back and edited some areas to utilize as much UV space as possible. I know there are some areas that can be mirrored. In fact, I originally mirrored those areas, but they apparently got moved around when I normalized the entire mesh, and I guess I just didn't notice. I'll be editing it so I can get the mirroring in.
As for the grip, I tried adding some seams along the back, top corner, as shown here:
but when I relaxed the UVs, they started to overlap. So I'm not sure where to place my seams. I know I could just make the entire back of the grip its own island, but that would be difficult to texture.
Concerning the stock. I'm not sure I understand what you're saying. Should I totally detach that one polygon since it has a hard edge, like so (sorry if it's hard to see):
So basically, I should totally separate my hard surfaces in my UV layout?
And lastly, as for baking, I plan on baking two maps: the normal map, and the AO map- pretty standard. If I explode my model entirely so that no two elements are touching, then my normals will bake nicely. However, my AO will bake poorly. Should I do two bake scenes, one for my AO, and the other for my normals? That just seems inefficient.
_____________________________________________________________________________________
@WhiskyDelta
To be honest, I never touched any of my smoothing groups. They were automatically assigned when I created the lp. I have a very loose, probably inaccurate understanding of how to use smoothing groups, and how they affect the normal maps. Some people have told me that I should have all of my mesh assigned to smoothing group 1. Other people have told me that I have to assign them manually. I'm not sure what to believe.
So anyways, what the slow clanking of the gears in my brain came up with is that I need to assign smoothing groups and create UV islands so that nothing clashes. So in this instance, that small, one polygon hard piece of mesh has its own smoothing group, but isn't a different UV island. So to fix this, you're saying that I should either make it its own UV island, which would be a bit tougher to texture, or I should take the flat piece of geo and make it smoother by chamfering, thus helping the texturing process. Although I'm still not sure how the latter would introduce smoothing errors. I thought the only problem would be a bit of UV distortion.
I think what you're both saying is kind of making sense, but it's not quite there. I don't want to even think about baking until I have a good understanding of what I'm doing.
Each UV shell should have its own smoothing group. You want to separate the shells based on where the hard edges are. Having a UV split, and thus different smoothing groups, on an edge where there isn't close to a 90 degree angle will create an unwanted line down that edge.
Regarding the exploded bake, you animate the highpoly to explode, then use a editpoly modifier in the lowpoly modifier stack, this sits underneath the projection modifier. So when you want to bake your normals, you slide the animation slider to the point where the're exploded, then enable the editpoly modifier in which you moved the elements. For baking ao, you simply slide the slider back, and disable the exploded editpoly.
https://www.youtube.com/watch?v=4ZESBJPvesA Here's the inimitable racer with the workflow.
In essence...those "people" are both correct in my experience, but in order not confuse you further i suggest you look at the 3D Motive tutorials. They are top notch and the tutorial set link below, Alec Moody goes through all of the tips and tricks associated with Normal Maps and how to get the best out of them.
http://3dmotive.com/series/normal-maps-tips-amp-tricks.html
Whisky
I also urge you not to automate any of this vital processes until you actually undestand them. I can't put that any plainer.
Yes, only a little space for padding is needed.
Sooo bake it twice, once for normal and once with local AO? Look, no professional around here can hold your hand through each of these phases. I've eluded to study over and over. Test things out, study, adjust, rinse, repeat.
Study. There's tons of resources available. Here on Polycount, this is a good one: http://wiki.polycount.com/wiki/Normal_map#What_is_a_Normal_Map.3F
You've made good progress. Frankly, I don't have the time to teach you step-by-step. No professional here does. Be patient and do you best to understand this critical step in game art workflow.
hard surface models with high/ low res baking and the only components i explode, are components which shall move in game, such as wheels on a vehicle. If i left them in place, under the vehicle and under the ground plane, i would bake in AO shadowing which look wrong when the wheel rotates. For sure if you have some interesting details, part of that geometry will bake into the normal map so the normal map doesn't look as clean...but...the low poly model geometry will hide these minor baking artefacts so you don't notice them anyway. To explode something like a gun may be irritating enough, to then move the high poly, move your low poly so everything lines up, then make sure you cage is suitably expanded etc, but some of my vehicles have hundreds of separate elements to the mesh so to do this is to add days and days of hassle onto the baking process to avoid artefacts which are hidden anyway
All i would suggest, is try it and see. Trial and error. Finish you UV'ing, do your smoothing groups to what you understand now and try some bakes. No matter how many models i have done, i always do may trial bakes, end up changing UV's changing geometry until it looks right. The more you do, the more you pre-empt issues before they become issues, but still there will be a detail which is not quite right needing to be fixed.
Just my 2 pence worth
Whisky
Anyways, I'm having some weird issues when baking. I've done ~6 bakes now, and they've all turned out relatively the same, which a bunch of weird errors.
I'm getting some weird spots in my render viewport:
I'm using the default scanline renderer, which is what I used for my Spas 12, and it didn't return any issues like this. I've tried to copy my scene settings from my spas 12 bake file as accurately as possible so I can eliminate any variables, but to no avail.
This is what the normal bake looks like:
I've only rendered it at 1024, and with no AA, but that's irrelevant since the errors have nothing to do with AA. Here's what the model looks like in 3Ds max with hardware shading enabled:
As you can see, it looks terrible. Some areas are baking okay while most areas have really bad artifacts. I'm positive I'm setting up my bake correctly. I've lined up the HP mesh with the LP. I've exploded the model using an edit poly mod so I can revert it for the AO bake. I've added keyframes to the HP so I can revert that explosion as well. I've picked all of the HP mesh in my projection mod. I've edited the cage so it's surrounds all of the HP mesh. I've done bakes with AA @2048x2048 and it yielded the same results.
So I guess I'm not sure if it's my bake setup, unwrap, LP. My unwrap was already fine, and almost nothing has changed. Smoothing groups are fine. I have no place where theres smoothing group split with no UV split. And I've baked in 4 different files, all with different setups. I'm not sure what I'm doing wrong.
Edit: I've also made sure that its rendering the correct map. Tangent space. No channels are flipped on render. And I've even tried flipping channels in the material setup to see if it'd help, and it didn't.
You may want to preview the bake in something like Marmoset, I find that most helpful for previewing bakes.
Regardless I did a test bake and this is the result:
Definitely lost right now.
Edit: I forgot to mention, I also disabled supersampling, and the black dots have disappeared from my render, though I'll need AA at some point.
In regards to the better normal map bake, which was a couple of posts up. I have drawn over where there are errors on your normal map which would hint towards smoothing group issues on your low poly. For large flat surfaces which are signature parts of the model you do not want to have smoothing errors on the low poly.
Whisky
EDIT: For previewing, many people do use Marmoset a mentioned above but this is a third party tool whcih costs $$$...so i use Xoliul Shader in 3D Max which is spot on
http://viewportshader.com/download/
Since the whole thing doesn't (or shouldn't) have any hard edges, I unwrapped the whole thing as one UV island. Then I assigned all of the mesh on the island to one smoothing group, ensuring that there are no weird hard edges. However, this obviously didn't work since I have smoothing errors all over the thing. So I'm not sure what to do. I'm thinking I should add some supporting geometry to help with the smoothing, but I just spent an entire day taking redundant geo out... Kind of stuck right now.
I did download the quixel suite and I viewed the map in there. It looked better than what Max showed, though it still has a lot of noticeable errors: the smoothing errors on the receiver, mag, bottom, stock, and the aliasing due to the lack of AA.
Edit: Here's what it looks like in 3Do:
Flipping the green helped with some of the details. I still have to figure out how to do my smoothing groups though to get rid of those smoothing errors.
With the green channel flipped:
edit* - NM, thought that was a toolbag shot
Still obviously not ideal, and I've got some improvements to make, but it's getting there. All of the details are there, and there aren't many horrendous smoothing errors. I ended up breaking up the UV shell for my receiver a bit so I could break up the smoothing groups safely. This seemed to fix most of the smoothing issues with the receiver, but it'll make texturing a bit more difficult. I also reset xform on my LP which, for some reason, also flipped all of the normals. This also made my cage push the wrong way. To fix it I just removed the projection mod and went into the edit poly mod that I used to explode the model and I just flipped all the faces. In my LP file, I also triangulated all of the mesh.
Anyways, the most prominent issue now is the "freckles" on bake:
I'm gonna try enabling light tracer since that seems to have helped others, at the expense of a short render time. Hopefully I'll have an acceptable bake by the end of tonight.
Edit: After a couple hours of rendering and re-rendering, the black specs are still there. I've tried using light tracer, not using it, filtering the map, AA, no AA. Not sure what's going on. Other than that, my render looks alright. I've got a few errors that will be worked out by breaking some UV shells apart, but I really want to get the specs to disappear before I go back.
Thats what i use and never have issues
Whisky
It's getting cleaner, but it's not perfect.
Here's an up close shot of the mag where the specs are still visible:
Also, when I view my model using 3Do, there are a lot of smoothing errors. However, viewing the model in 3Ds max makes it look fine. I'm not sure why this is/whether or not it's something I need to fix.
[ame="http://www.youtube.com/watch?v=hTIJOYx6VPc"]Hit Only Matching Material IDs - YouTube[/ame]
This is a bit-depth precision issue. There are not enough values in an 8-bit per channel image to represent the smooth gradients that you need to account for your low poly's mesh normals. Max dithers or adds noise to try to hide this.
bit depth stuff explained more here: http://www.polycount.com/forum/showthread.php?p=2077653
Try adding smoothing group splits/hard edges at your uv seams (there is a fuction with textools I think that does this for max).
This is because 3Do uses Unity which has a different tangent space than Max. Tangent space is specifically how the renderer/shaders calculate tangents and bi-normals, and this varies from app to app. You can bake an object space map and convert to Unity tangent space with Handplane, or you can bake in Xnormal with the Unity tangent space plugin.
Or skip all that and load your mesh into Marmoset Toolbag 2 and change your tangent space (in mesh properties) to Max, which should give as good as results as possible. TB2 supports multiple tangent spaces like Maya and Xnormal as well.
Also make sure you triangulate your mesh before exporting.
I'm using Max 2012 64-bit and I'm rendering out at 2048x2048. I've never thought of using mat IDs. That should save me the hassle of animating an explosion of the model and using an edit poly mod on the LP to explode that. Thanks for the tip
@EQ
I'm rendering out to an uncompressed TGA 32-bit file. I just went back and redid some of the UVs to split them up, and then I used texTools to assign SGs by UV shells. I've been triangulating the LP before export for a while now since I heard that it can mitigate some smoothing issues. I also went back to the HP and LP and reset xform, as a lot of people have said that it helps.
I'll update when I get another render...
Edit:
Thanks a lot for the tips!
This is my best render so far:
I'll split the UVs on the rear sight guard to get rid of those smoothing errors. That mat ID method worked like a charm. There still seems to be a tiny bit of noise, but it's so subtle that I'm not going to worry about it. Thanks for the help
Keep at it
I just got Marmoset and am starting to texture, but I'm now getting a lot of smoothing errors. They don't appear in Max, but they do in Marmoset. I have the tangent space option set to 3Ds Max in toolbag, but it's still giving errors. Is this something I need to worry about? Marmoset is reading directly from the 16bit PSD.
Edited the normals a bunch:
Akimbo UMPs
do you have edges there? it looks like bad vertex normals to me. do they show up even if the normalmap is detached?
No normal map in Max:
Wire:
However, in Max, only one error is really visible. All of the others are either non-existent or extremely subtle. I'm not sure why there's a difference going from Max to Marmoset. I'm planning on rebaking normals to fix a couple issues, but it seems like I can never get it perfect
Here's a shot of the model with the normal map in 3Ds max:
32-bit TGA = 8-bit per channel, read that thread again. You want a 16-bit per channel normal map, not sure if max can bake that, but xnormal can.
It looks like your mesh normals are screwed up, make sure you're exporting normals (not just smoothing groups) from max via OBJ. Try FBX alternatively.
Also are you sure you have a 16bit file? How exactly did you bake it?
One thing to note, image based lighting is going to make any minor smoothing error that may not show up in Max with a basic shader much more pronounced.
Nice and flat:
A couple renders. Let me know how I can present it better if you see something off
Keep rocking!
And I only had to rebake like 10 times
Having a tough time wrapping my head around PBR using a metalness workflow, so this'll take a while.
I've been reading up on PBR, and I'm developing the asset for UE4, so I need to use a metalness workflow. I feel like I have a good understanding of how the different maps work. So basically, albedo is both your spec and diffuse. Metalness controls how metal-like a surface is and should usually be either black or white. For metallic surfaces, the specularity is derived from the albedo map, and the diffuse is locked to black. For non-metallic surfaces, the diffuse is derived from the albedo map, and the specular is locked at .o4. As usualy, gloss just controls the width of the specular highlight. Correct me if I'm wrong on any of that.
However, when I use an albedo map in Marmoset, it still gives me an option to set the color? I thought the diffuse color was derived from the actual map. and not constant? Not sure what's going on there.
Anyways, I've been trying to reproduce this plastic surface:
From what I understand, the metalness value should obviously be at 0. The diffuse should just be the color, so a darkish grey. It should be relatively rough, so a lower gloss value, giving it a wide highlight. However, with a low gloass value, and a diffuse color of almost black, the plastic looks grey:
So I thought that maybe my gloss is too low, and the highlight is just making the whole gun look brighter than it really is, so I made it a little glossier. That only made it look really reflective, which it should not.
I can't seem to find many resources on metalness workflows. I'll just keep playing with it. I'd love some help though.
https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/PhysicallyBased/index.html
http://www.marmoset.co/toolbag/learn/pbr-practice
http://www.marmoset.co/toolbag/learn/pbr-theory
With pbr you can use colors really close to black, I think one of these charts lists acrylic paint, that should be close to the albedo value you want. Also remember to try different different preset sky's in marmoset and different background colors. Colors are relative to each other, dark gray looks blacker on whiter backgrounds, and lighter on darker backgrounds.
I'm thinking it just overrides the specular color? I'm leaving it at white for now, since that's what it was at by default.
The effect for the polymer grip on this knife I recently made is more pronounced than the plastic on your UMP, but I hope this gives you a good starting point to play around with.
I first used some generic noise I generated in PS, then I passed it through a normal map filter. I then used the combine normals script for PS (just don't forget to use a mask lol.)
Then I generated some maps from it. I plugged the cavity map into the gloss, and multiplied it a bit. After that I left the albedo pretty much devoid of the noise because that seemed to ruin the effect. The metalness was pretty much just a mask, I didn't really bother much with it. The scuffs and scratches weren't in the normal map, they were really just blacked out in both the gloss and albedo, which seemed to get the job done.
Here's the maps.
Good luck!
I'm trying to make the metal for the bolt emulate this:
I think it's getting there.
EDIT:
If anyone knows how to switch camera views in Marmoset, I'd love to know. Just selecting it in the hierarchy doesn't work. Thanks.
Textures are getting there, but I'd appreciate any crit:
Dickbutt sticker is a joke. Probably won't be in the final.