Probably because those ngons on flat surfaces and engine will take care about that.:poly121:
i was wondering about that earlier as well. i think he may have triangulated the mesh before export.
anyone else reading, u should not leave ngons in the mesh before export. to guarantee that your normal mapped model will have perfect shading i highly recommend triangulating your entire mesh BEFORE you bake normal maps and keep that triangulation.
if you do not triangulate then you risk the chance the the exporter will use a different triangulation orientation resulting in normal map errors.
also avoid multiple UV splits with multiple hard edges and instead create 1 smoothing group. this will ensure very accurate normal bake.
editing in a reply to johny:
there may be some rare places where you might have to resort to hard edges but so far i dont see any reason for this model, specially with the technical specs we are dealing with for Hawken.
Lonewolf mentioned he used smoothing groups because he had normal map issues and i see a lot of hard edges in this model as i mentioned earlier in a post in this thread.
the solution is to triangulate your mesh, use 1 smoothing group and no hard edges. preferable bake in Maya if u can and it will work best in UDK. xnormal bakes work well too. also avoid super long triangles.
Replies
Sorry for the offtopic lonewolf !
@Johny that's actually not correct, yes, it makes sense to split uvw and use hard edges when working with an older engine, or an engine with which you cannot match its tangent basis. But, since this is unreal, unreal has a tangent basis that is easily synced to when using the right baker. Without going into all the details - simply creating hard edges and uvw splits, which breaks the normal map intentionally to be able to bake in max's crappy tangent basis isn't needed for unreal, and although subtly crappier, wont look as good as a single smoothed out mesh. The vert count would be higher in the end as well. Although the issues are not always highly important to be honest, its good to have the correct info
absolutely i was refering to when the baker wasnt sincronized with the engine, wich was (sadly) the versions i used of udk , glad to know thats fixed tho !
The vert count will NOT be higher if the hard edges are along uv borders that would be there regardless.
If you're adding more uv seams and more hard edges than you otherwise would, you're correct, but you can have every edge that is on a uv border a hard edge for every model you make and not see a spike in your actual vert count, because as Joao says, the verts there are already doubled.
If you have synced tangents and can use less uv seams because of it, that is great, and I agree that is the best solution. But lets try to be totally accurate here when we're telling people they're wrong about technical stuff.
Also, even with a synced workflow it is often beneficial to set your uv borders to hard edge. This helps reduce extreme gradiation in your NM content, which is better for texture compression and generating detail maps etc from. It also helps to reduce "resolution based" smoothing errors that you get when you don't have enough resolution to represent the smoothing of a small triangle. This often shows up as "little white triangle" type artifacts with a synced normals workflow. And again, since there is no increase in vertex count when using the same uv layout there is no drawback to doing it either. You can use a simple script in max(part of textools) or maya(https://dl.dropbox.com/u/499159/UVShellHardEdge.mel credit: Mop/Paul Greveson) to do this as well, so you're not taking a time/workflow hit either.
At the risk of getting even more off topic, I don't think we ever really got to the bottom of "how" synced UDK was with the updated tangent stuff. From memory it was much better for static objects but rigged objects still had smoothing issues. Has this been corrected since?
Also just to be perfectly clear here: Having hard edges on your lowpoly mesh should have no effect on your baked end results. If you're getting visible hard edges/seams from using hard edges with the NM applied, this means something is broken in your baking process.
Generally this means that you aren't using an averaged projection mesh(cage in max) and instead using the "offset" thing or using the default ray projection settings in xnormal instead of a proper cage, which will create "gaps" along your hard edges.
If setting all your edges to soft on your model has a noticeable effect in the end result(in regards to seams/hard edges on your low), you're just covering up for a broken bake workflow.
I'll be here all day to myth-bust any more baking-related anomalies you guys can come up with. =P
frankly i have never had normal map issues with unreal engine within the last 3 years (way before xnormal sync update) that i can remember. as long as i used the methods i mentioned above i had bakes that were pretty much exactly like the highpoly.
what you are talking about has very little to do with the spec of 15k triangles limit and ~4k textures on each of these mechs. lot of the things you mention may be needed when dealing with last gen specs, but even then they are very rare cases. best practice is to always triangulate and use no hard edge. triangulation locks tangent basis and smooth edges with limited (enough for compact UV layout) allows for better painting flexibility and perfect normals.
i will just have to agree to disagree then. i also never ever use cages either in xnormal or maya or anywhere else and i always had close to perfect final normal bakes. i am just passing along my knowledge from my personal experience, do with it what you will.
The fact that you never had any issues with UDK normals means one of two things:
A. You don't know what you're talking about
B. You're a character artist who models meshes that are comprised mostly of soft blobby shapes, which are much more forgiving to smoothing issues etc. When you're doing primarily hard surface work tiny little smoothing errors that you might not otherwise notice become big issues.
What I am talking about relates to any mesh with a baked normal map, last, current or next generation. Everything I've stated is technically correct and very easily proven, and has been documented and written about in countless threads on polycount.
I never said triangulation wasn't a good idea, it can be very helpful for the reasons you brought up.
Use of hard edges or not, with the same uv layout will have absolutely no negative issues when using a proper baking workflow, and is very easily seen if you were to actually try it yourself.
Exactly! You don't use a cage in xnormal so you have to soften all of your edges to get usable results, it all works together.
Give this thread a read if you don't see the connection: http://www.polycount.com/forum/showthread.php?t=81154
Edit: Also, in Maya by default your "envelope" (cage in other apps) is averaged, so yes, when you bake in Maya you are using an averaged projection mesh, and use of hard edges along uv borders is fair game. Unless of course you've changed the "match using" setting(I can never remember which is which) to purposely break the projection normals along hard edges.
i use photoshop lequify to fix any waviness if i want. lequify can be saved and applied to all baked maps(AO, curvature etc.).
this way i have no wavy end result and still have maps with less UV seams to paint better.
btw, i worked on enough hard surface meshes to know the difference. i just dont have lot of them displayed publicly on my folio.
if u use hard edge, then u must split UV and i rather not split UV on edges that i wanna paint manually. i know there are lot of 3d painting tools out there now but i prefer to keep it all easily paintable in photoshop.
btw, Yaron my apologies for derailing your thread. i will sign off from this discussion but i hope some of the information i provided will help someone, anyone..
Read the thread again. Check the bottom bit of the first post there, it goes over "Gaps" in projection due to hard edges with broken projection(when I say broken, literally broken, the vertex's get broken at the hard edges when you're not using an averaged projection mesh).
Read the whole thread even, it goes quite in depth and if you still don't know the difference between using a cage or not in xnormal I don't know what to tell you.
Really "waviness" isn't the problem so much as not understanding how your projection normals shoot out of your mesh when you're baking, once you understand that its a straight forward process to fix "waviness" or "skewed details"(these are just side effects, its all one big interconnected topic) with your geometry. If you understand the issues and still choose to do hacky stuff like paint it out thats up to you(painting it out can be viable on very low polygon meshes when you can't spare the extra geometry to fix the issue), but you should at least fully understand it.
Correct, however again I think you should just re-read what I've written. Most of what I've said in this thread related to hard edges is in regards to using the exact same uv layout.
IE: With the same uv layout, you can use hard edges on all of your uv borders will no increase in actual vert count. With an averaged projection mesh you will see no visible difference. I've outlined the reasons why you might want to do this as well.
That's a shame man, I think if you just took some time to read everything over and think about it a bit, do a little research and try some things I've mentioned yourself you might even learn something.
I've worked in the exact ways you've described in the past, and I got sick of all the drawbacks to those workflows so I've spent lots of time to try and understand the technical side of it.
Check out the brink guns in my signature. Those are all:
A. Using synced normals
B. Using a bunch of hard edges, along every uv border in fact - with no visible gaps/seams/etc
C. Straight out of the baker with no need to "paint out" any errors
this way i have no wavy end result and still have maps with less UV seams to paint better."
but the time you spent doing that even if seconds could be avoided if you made maybe splits where it wouldnt make any impact perfomance wise and would actually help projection , like the caps under a shoe or cilinder shapes.
"if u use hard edge, then u must split UV and i rather not split UV on edges that i wanna paint manually. i know there are lot of 3d painting tools out there now but i prefer to keep it all easily paintable in photoshop."
thats a different matter, your refering to split uvws to make it easier to paint, and i agree with you , if i can have a more uniform surface to paint in photoshop i will try to avoid splitting it , unless i get some nasty normal map artifacts or wonky uvws...
i dont remember starting a thread....
With proper planning and understanding of expected results of a bake, can save you (or someone else) the hassle of going back into correct geo in case of changes, for meshes. In most development cases, models need to be updated, re-exported. etc...the manual paintovers of the nmm, were wasted since now you have to regenerate normals.
The thread was split off, since it started to derail to technical explanations of the decisions behind final shader results utilizing nmm, vertex, and smoothing groups.
Yeah sorry, when I pull posts out of a thread into a new one it just uses the oldest post as the "start". Figured this was better than taking away attention from Lonewolf's awesome work.
with proper understanding of how normal map works, it is perfectly ok to paint on a normal map in my opinion. a normal map is hack to begin with. a cage is also a hack.
btw, if u read carefully then u will see i was talking about using lequify to fix waviness. thats not painting in rgb channels.
btw, isnt a cage mesh an inflated version of the actual lowpoly to begin with ? if so does the cage mesh have exactly same tangent basis of the original lowpoly ?
using a cage might be needed in certain cases, but i never needed a reason to use one. my workflow is really fast to begin with. using lequify takes no longer than 5 seconds. painting over a small normal map hole to fix it manually take far less time than rebaking the entire map.
uh
To be redundant, MM, here's a visual aid and a little explanation.
Here are two boxes, with a normal map baked onto them. They are geometrically identical, the high poly is the same for both, and they used the same bake-settings in xNormal (they are even on the same normal map). Both were triangulated before baking, and the green channel is most definitely correct for both. They are being rendered in marmoset, using the 'sunlight' light environment - it's a harsh lighting setup, which helps highlight any problems in the normal map.
Box 1 has softened normals.
Box 2 has hardened normals.
It's pretty obvious that there is a large advantage to hardening the normals in some circumstances.
Baking is done with a high poly, a low poly, and a cage. Always. If you do not give xNormal a cage, it will generate one of it's own, using the low poly you give it.
The cage is used to project the high poly onto the low poly. Specifically, the cage's vertex normals are used. If the vertex normals are split, you will have splits in your projection.
If I had not given xNormal a cage for Box 2 - a cage that I had softened the normals on - then I would have had obvious artifacting around the edges of the cube. Because xNormal would have used my low poly. Which had split vertex normals (hardened normals).
This is why cages are important.
using a simple cube to prove your case is a rare case and i agree for such situations its fine to do so.
Would love to see a little tutorial for that.
I also wanted to clear up any confusion you had about what cages are for / how they work. Since the two subjects affect one another, I figured I'd cover both.
Udk cannot import sbm models, as far as I know, so when you say Do you mean that I should bake with an sbm, but then import an fbx into udk?
The problem with tangents is, that they are a property of the tris, but are saved at the vertices (for interpolation). This lead to the problem, that vertices sometimes need to save opposite tangent spaces (left/right handed). Now, this is not a problem per se, you just need to duplicate the vertex using two different tangent spaces, most tools do this automatically. But as far as I know, not UDK. Therefore you can enforce it by using a hard edge, because similar to UVs, hard edges are duplicated too to assign them different normals, and this is supported by UDK.
This is no magic and it depends on the modelling/textuing technique you use. When you use mirrored normal maps, you will most likely get this issues in UDK.
Thanks, that's what I figured. Okay quick test. Here's the boxes from my previous post.
Box #1 was baked as an sbm, exported from maya using xNormal's sbm plugin tool. It has all soft normals, and a default xNormal cage (shouldn't matter, afaik).
Box #2 was baked as an obj, exported from maya. It has all hard normals, and all faces' uvs are split. It's using a custom-cage (simply a slightly enlarged, soft-normal copy of itself).
Both were triangulated before baking. Both were imported into udk as fbx's with explicit normals on. These are screenshots from the static mesh editor. I'm using the march '12 build of udk.
Unless I did the test wrong, using a sbm does not particularly help reduce shadowing artifacts.
Here is a real life example i've created. fully smoothed out bake, no hard edges in unreal.
the thing is , you dont loose anything by using hard edges, even if you dont see the "need" , its "free" to use , and it might ( read : might ) even help out in projection issues if you use cage.It will probably give a cleaner normal map for you to extract cavity maps etc , but thats cosmetics hehe...
"Simply put, workflow wise I'm sorry but synced tangent basis single smooth group is easier and looks the same if not better, and typically has a lower vert count depending on how much you split."
I dont think thats correct, the minute you make an uvw seam you have an extra vertex to count , saying that single smoothing group has lower vert count is not accurate. You are also talking about synced tangents , im talking about engines where the tangents are not syncronized and the uvw>hard edge workflow helps alot , but even with synced tangents, having hard edges on uvw breaks will give you advantages even if you choose not to use them.
1. make your normal map artifacts unnoticeable in most cases, or
2. make your normal map artifacts non-existent, sometimes at a price
That seems to be what the discussion is about, at this point.
Camp 2 says "harden your edges and split your seams or you might have errors". Camp 1 says "if you do it correctly, baking with soft edges is fine in udk".
Software updates change which techniques are best. Information on the wiki supports hardening uv seams, and treats hardening edges for baking as a simple fact of life. MM and polygoo are saying that with changes made to UDK, there's no need to ever harden edges any more.
Side comment,
The increase in vert count from splitting uvs at hardened edges is honestly negligible, unless you are literally splitting every single uv, or the model is going to be duplicated hundreds of time. A more convincing point would be that you lose uv-space from having to put a buffer in-between the two new islands.
Of course, specularity would make it more noticeable, and texture noise would make it less noticeable. Very nice model, tho.
and
sigh once again. where are you getting that idea from ? normals in UDK has never been broken to begin with. epic just introduced increased compatibility with certain renderers. like i said numerous times before alread, i never hard normal map issues with unreal in the last 3 years or even last 5 years for that matter, and i can spot normal map errors when i see one.
last thoughts, do what you want to get what you think the best results are and fast workflow is, to each his own.
Sorry if I misrepresented your argument. I was basing that off of All of which implies that you only need to use soft normals, as long as your tangent basis is synched - a recent update to udk.
Hence me saying
"MM and polygoo are saying that with changes made to UDK, there's no need to ever harden edges any more."
Though to be fair, rechecking the thread, you never said that. Just polygoo.
in closing though, yeah do what makes you happy, if your faster doing the hard edge bakes then that's great.
i'm not eq, but using hard edges has nothing to do with welding less uvs. you can take a model you already have with absolutely any number of uv clusters and harden all the edges that form the borders of those clusters and that itself would be conforming to his advice, you don't have to re-uv anything. it's an utterly free improvement. the normal map has to do less work to compensate for shitty smoothing so there's less chance of texture compression (or tangent-synch problems, or retriangulation, or someone later in production editing something, or...........) messing anything up. these are objective gains at the cost of running a script for milliseconds.
well, the subtle shading looks like a shading error on a cube, which is what you were saying was a pointless issue when you posted the truck. this is why non-distracting examples like cubes are better for judging the accuracy of what someone is advocating..
i dont know who you are quoting but i didnt write that. normal maps render fine for all meshes in UDK, skeletal or static.
ive got nothing against that, that sounds like a viable in between and is easy, im all for it that since it doesnt increase vert count at all, and doesnt add any extra effort really, and i've done that in the past. BUT its not really needed
my point was, photoshoping an image to darken it to bring out a very subtle shading artifact doesn't prove anything, and doesn't prove that the error is worse or better.
I dunno, i feel like the super subtle shading on this box isnt enough to discredit this entire method. How often do you model with just a simple box? This example is actually worse then a box since it has an underside inset geometry, doing a 90 degree under and then another 90 degree down again. And it still has a extremely subtle dark shading.
if you read my post you will see that i also said some situations call for hard edges and other things you mentioned. the Hawken art however does not require it at all what so ever.
i am done with this thread honestly, i dont have time to read through essays to be frank. i trust you did your research and have some valid point. i will leave it at that.
Seriously? I just wrote a very calm and what I consider thorough explanation of a very complex issue that many users struggle with, and you see that is getting defensive?
If something is coming off as condescending in my writeup please let me know, as that was not my intention at all.
looking forward to that.
in the mean time, can you please format/edit/whatever to this thread or start your own thread.
you literally hijacked my post hehe, so i would appreciate u make your own thread about this and remove my comments from it.
I'm not sure how to do that without creating a really confusing thread. I can simply delete the first post so it looks like Joao started the thread if that is your main problem.
Deleting a bunch of posts from a variety of users to take out all reference to your posts seems like needless censorship to me, but you're free to edit any of your own posts if you like.
If you have some suggestion for re-arranging the posts that won't result in a really confusing thread I'm all ears.
I could pull out everything from my large writeup and newer into its own thread, and then just lock this one, would that be better for you?
sounds good.
just leave my comments out of it since they were meant as a feedback to Lonewolf's thread only.