xnormal bakes textures using the detail on a high resolution mesh and organizes the surface information using the uvs of a low poly version of that model. The models are usually saved on a hard disk and do not have to be open in any applications for the baking process as xnormal only references them. This makes it possible to get incredible detail onto a much lower resolution mesh which allows for easier rigging, animation, final rendering or integration into game engines.
xnormal handles .obj files that you can export out of zbrush. You can export a high poly model (many millions of polys but it depends on your computer) with a texture or with polypaint. If you export a highpoly with a texture the highpoly needs uvs and the texture must be applied to the model. If you export the highpoly with polypaint then your model needs no uvs but you have to check that the colorize button is activated under the polypaint menu.
The low poly mesh is usually made in an external application but with zRemesher and even the topology tools in zbrush you can produce an excellent low poly mesh. There are a lot of retopology tools out there and the low poly is usually drawn over a decimated version of the zbrush highpoly. If the low poly is made this way then it is possible to use the decimated version of the highpoly as a reference for a projection cage. The projection cage is needed in all but the most simple of shapes. When you install xnormal then usually an export plug (xnormal .SBM) will be available for the purpose of exporting the lowpoly out of the external app. The SBM exporter allows a cage to be included with the export. The model with the cage must be a mesh not an editable poly.
The tutorials will show you how to use xnormal but there are a few things that may help. If you are exporting the highpoly with a texture attached you will need to enter that base texture in the same line as the hipoly model in the xnormal ‘High definition meshes’ dialog. You can find the correct texture in the same folder you exported your highpoly to. The texture will have the same name and is in a BMP format. You can leave ‘ignore-per-vertex-color’ checked to bake AO maps. If you want diffuse maps then you have to use ‘Bake base texture’ under the ‘Baking options’ button. If you are using a polypaint zbrush highpoly then you have to uncheck ‘ignore-per-vertex-color’ and use the ‘Bake highpoly’s vertex colors’ option. Uncheck ‘ignore-per-vertex-color’ if you want to bake AO maps.
Hope this helps
Cheerio