Hey there everyone,
I recently started working with a lot of new software (from Zbrush and Xnormal to Marmoset and the Quixel Suite). Managed to learn a lot in a short amount of time, but the thing that gives me headaches on and on and on is: baking a high poly normal map.
I modeled a series of meshes (from swords to guns) and then I tried creating a normal maps using Xnormal (instead of using the "Render to texture" method from 3DS Max). A lot of people recommended using the Ray distance calculator but the result always ended up with A TON of artifacts (wavy lines, extra "details", missing actual details etc). I tried even with a custom cage from 3DS Max (an exported low poly model covering the high poly one), but I can`t really say there`s much of an improvement. No matter what the method it still looks bad, even when imported in Marmoset Toolbag.
My first and foremost question is: What am I doing wrong?
What would be the best way to bake a normal map from a high to a low poly mesh? Can somebody recommend me some good tutorials (be it video or written)? What should I avoid doing when baking? Also how could I correct some of those artifacts?
Sorry for bombarding with questions, but I feel like I`m loosing my mind... got stuck here for more than a few days... Watched a lot of tutorials, tried baking both in 3DS Max and XNormal and it still has a lot of problems. How do you approach baking the normal maps? I would also appreciate tips and tricks, as well as what should I avoid doing.
Thanks in advance!
Replies
There are a whole host of factors at play here: Low/high poly relationship, uv layout, smoothing groups, tangent basis, synched or non-synched, single or multiple smoothing groups....
As Bagelhero said post images of all the above.
Also, there's a wealth of info here from stickies and previous posts.
I`m open to any suggestions/tips and tricks regarding this issue and my workflow in general
Cheers
check this thread to fix some, if not all of the issues
@STICKADTROJA from what I understood from the link is that the 3 rules of thumb are: 1. Always have enough polygons on the low poly model
2. Try to avoid sudden curvatures, by easing it in with a simple slope (e.g. an 45 degree edge instead of a straight 90 degree drop)
3. To avoid the skewing errors, place another loop at the edges of the model and try to make an easier transition in the curve.
Did I get it right or am I totally missing the point?
@JEDTHEKRAMPUS I think you`re talking about the hard edge on the blade. The reason I used that was to create a hard edge between the shinny white area, adn the darker grey area of the blade. Also the UVs are separate because of the different smoothing groups they have. Should I have done it in a different way, to reproduce that effect?
@MUSASHIDAN I kinda realised that after doing quite a bit of reading. My question is: how to I know how many polygons should I use on the low poly, so that it has the graphical fidelity of the high poly (with the use of normal maps)? Is there a basic rule to that? Cause I always noticed I`m pretty greedy with my polygon budget, and I end up having PS2 level assets
Once again guys, thanks for the feedback. You`ve been of huge help already and I`m kinda getting and idea on what to do/not do as well as how to avoid certain errors.
1.Don`t be greedy with the low poly geometry. I know for some it sounds obvious but for me it wasn`t. Don`t use an 6 or 8 sided cylinder and expect it to look perfectly round. Depending on how close or far you want the model to be seen, you need to decide how many faces it needs. If it`s a close up model (for your portfolio) and the shape is inherently round use at least 20 sides...AT LEAST! NRM Maps can go only oh, so far and give the desired illusion.
2. Don`t be a lazy bastard (like I was)! DON`T AVOID MAKING A PROJECTION CAGE in your 3D software (e.g. 3DS Max) and instead rely on XNormal's "Ray distance Calculator"! This was one of my biggest mistakes: I thought that I would save time by doing this, but in the end I just sacrificed A LOT of quality. So do the right thing, create a cage for the low-high poly, do a few normal map tests in 3DS Max, export it as a triangulated OBJ and import it in Xnormal as a custom cage.
3. In case it wasn`t obvious enough: use Xnormal instead of the default renderer in 3DS Max. I know Catmull Rom and turning Global Super Sampler on will greatly improve the quality, but I still haven`t seen the quality level Xnormal offers. It`s free, it`s not that hard to use, and it`s totally worth it!
4. In case your models are really small in 3DS Max/Maya/etc or the unit system is set wrong, make sure to set (in Xnormal) the "Default mesh scale" to a higher value, to make sure the software has enough surface space on the 3D models to calculate the normals required. Some recommend 15-20...I only went with 5 and it was alright.
5. For complex models with pieces that are close together, I would HIGHLY recommend to use the "Exploding mesh method": separate the pieces of the model that are touching each other (both for the high and low poly) and MAKE ANOTHER CAGE specifically designed for complex normal maps (while the other "1 piece" cage can be used for the Ambient Occlusion). After building the exploded cage, export this, as well as the exploded high and low poly into Xnormal, an render the Normal Map. In case my explanation is a bit confusing, search on Youtube for a tutorial on this topic. Trust me it`s worth using this method because it helps you avoid A LOT of baking errors (at least for complex meshes such as guns/fantasy swords etc).
6. If you have the Quixel Suite (or a trial for it), improve the overall texture by also creating a Curvature Map. Not mandatory but I think it improves it a bit.
7. Always check (if you have the possibly) your normal map on the low poly model in software similar to Marmoset or Quixel 3DO (rather than straight from 3DS Max) or a game engine (such as Unreal 4).
8. When you're close to finishing the model, make sure to also add an Ambient Occlusion cause it goes a LONG WAY to the final look at the model. Remember I got all depressed cause the mesh still didn`t look good, and a mate of mien suggested I add an AO cause "it makes everything look better". And guess what? It really does.
For now this these are the important things I thought I should mention and everybody should know when baking normal maps (especially if using Xnormal). I will post a few renders in the near future, but only after I get a really good hang of PBR texturing and only once I have something worth showing. In the meantime I`m struggling with Unreal 4 shaders/materials as well as it`s lighting...so it might take a while.
If I got anything wrong, feel free to correct and/or critique what I said up until now