A few weeks ago I asked the integration of a feature in xNormal : the ability to offset an High-poly mesh during a bake to avoid intersections.
Before that, xNormal was able to reduce the intersections artifacts by using an anti-aliasing setting, however this setting increase a lot the render time (the computation is logarithmic). There is also the solution to bake one piece at time, but this process multiply the number of textures that you have to bake and you have to merge them later.
So moving your meshes away allow you to bake properly everything at the same time and on the same texture. However, before this new setting in xNormal you had to manually offset the HP mesh which means importing it in your 3D app and re-exporting it after. No need to say that with meshes coming from zBrush it becomes a little nightmare (and you lost your vertex colors in the process). Having this setting in xNormal means you just have to take care of your low poly position correctly.
This new setting is also available via xml batch, so automated process (like with my xNormal script) are possible.
So here is my little test :
If you bake this setup, because of the intersections you will get so artifacts in your normal map. So I will offset the mesh like bellow in Maya (moved at 32 units on the Y axis) and export it :
In xNormal I load my meshes, without forgetting to setup the offset of the high-poly mesh. Note that this vector is similar to Maya coordinates : the Y component is the UP direction.
Bake your mesh now, everything should be fine ! 🙂
Here is a little comparison of my little test :
My example is not the best and obvious one, but the setup is really simple so I really advise to use it. 🙂