ZBrushCentral

How do I get a projected normal map in ZBR3 from 2 different meshes?

I’m hoping someone can help me. In Z3.1 in Zmapper you were able to capture your high poly object and then Project from a completely different mesh with different uv’s and everything, to create your normal map. So for example say I just made some cool high res pipes or something but I just wanted to project from a flat plane to get the shading for a texture. Has this feature been removed?? :frowning: I really hope not, this is a huge part of our art pipeline at our studio, can anyone help explain this??

Two alternatives, both servicable. (A bonus alternative is also included.) You have your tuned lowres model L with UVs, and your highly detailed model H and wish to create a normal map for L.

Alternative 1: xnormal. (www.xnormal.net) It creates quite nice maps and is free.

Alternative 2:
Step 1: Use Project All (subtools pallet) to project your details from H to L.
Step 2: Generate Normal maps from L.

This alternative has the advantage of allowing you to move polypaint or add HD geometry if desired. You also have the opportunity to evaluate and touch up the projection in-between steps one and two, which can usually give you better results since you're looking at the projection on a subdivision of L, rather than a subdivision on H merely projected onto L.

Bonus Alternative:

Step 1: Export H from ZB 3.5 as an .obj. Step 2: Load H and L into ZB 3.12 Step 3: Use Zmapper to project H to L.

The weakness here is that you cannot tune the projection with sculpting brushes in between generate the projection and the resulting maps for L. I don’t feel these maps are as high quality as alternatives 1 and 2, so I’m hesitant to recommend them.

-K

as for alternative one, I tried it with a mesh at about 600,000 poly and xnormal just hangs.

alternative two would work fine except in order to get clean details to my L mesh, my L mesh has to be properly quadded out to support the projection, which is not what I want for my in game model. Ideally I would just want to decimate my high res model (creating my L)and then project from that back to my H model to get my normal. and what if i want to just project from a flat plane to get some cool surface detail or create a texture from? I can’t do that anymore.

Alternative 3: may be my only option. But zmapper does not like high poly objects, it’s used to taking the lowest subdivision and working with a smaller polycount.

This is really ridiculous, I mean I don’t know of any other programs out there that just cut features that people have been using for years…I’m guessing that there’s some sort of legal problem with using the tool otherwise I doubt it would be cut, that was such a huge step forward in z3

when using xNormal decimate the models before exporting them in.

xNormal will also use as much RAM as you have in your system. I personally love xNormal and use it for almost all of my bakes.

It can bake multiple objects at once, as well as give you multiple texture types…ambient occlusion, diffuse, normals, etc.

my2cents

thanks, what polycount do you usually use for your high mesh?

I’ve used xNormal with detail meshes over 2M polygons.

L does not have to be quads to support the projection. It can be decimation of H if you like. The basic technique of alternative 2 is to take a UV’d L of the same general shape as H. Subdivide L up to somewhere near H to take a projection. L can initially be all tri’s if you like. It’s UV space will be divided down just the same. Append H as a subtool of the subdivided L. Use project all to transfer your details. Generate your Normal map from the subdivided L. Since the UV space remained constant, you will now have a nice neat normal map.

I just checked this by sending all the details from a hi-res figure to a low-res proxy created by decimation. No problems with the L model being a mix of tris and quads.

To use the example you’re suggesting, you can do this:


  1. Take your H and use decimation master to create L.
  2. UV L (perhaps PUV tiles).
  3. Save L as a .obj for your game engine
  4. Subdivide L to be approximately as as dense.
  5. Append H to L and use project all.
  6. Generate Normal maps.
Steps 4,5 and 6 will give you an equivalency to an arbitrary projection, but you do have the opportunity to make corrections and cleanup if you like between steps 5 & 6.

The Zproject brush does this quite nicely and with more control. :wink:

-K