Home Technical Talk

Explosion Baking With Zbrush (or How Can I Avoid Tedious Photoshop Compositing?)

Yokai
polycounter lvl 11
Offline / Send Message
Yokai polycounter lvl 11
I've stumbled onto something that's a bit of a problem, and I hope that someone here has found a solution that they could share with me. I've been trying to iron out my workflow in order to be more efficient and generally improve my art process. I feel like I have a good idea of what my pipeline should be now and I am able to iron out quality work more quickly and effectively. However, there's one place that's still a huge bottleneck in my workflow -- baking and compositing maps for complicated objects. Let me explain with an example of what I know about the topic as a whole.

Most of the time when baking an object from high poly to low poly, you probably won't have any major issues. The worst you might come across is some artifacts and bleeding in places that tend to pinch together, such as a character's underarm area. These types of issues can usually be resolved by simply tightening the cage so that the rays are cast closer to the models surface -- an easy solution for sure. Worst case scenario, you may want to make your own cage for baking.

However, in cases where you have complicated geometry that is interconnected (for the sake of example, let's say that you are making a gun model that has many interior and exterior elements), you generally do explosion baking in order to get a clean normal map. In the old days, when sub-surface high poly modeling reigned supreme, this process was pretty simple because you could simply move the high and low poly models together to some arbitrary point in space away from the other objects and then bake. The result will be a clean normal map. 

Since then, many of us have added Zbrush into our pipeline, and it's been that way for around 6 years or more now, for some of us. With that said, I feel like I still haven't found a good solution to explosion baking when dealing with two or more applications. Lets say we have a high poly model that's in Max (or your personal favorite modeling tool of choice) but we wish to make the high poly in Zbrush. This mesh is complicated and comprised of many closely hugging pieces, but that's OK because Zbrush will let us split the object into subtools so that we can sculpt each object separately. However, we will have to bake this high poly onto the low poly which will pose a problem. We can't just load all of the objects into Xnormal (or any normal renderer) and hit the bake button because we will get far too many artifacts. Similarly, we can't easily explosion bake now either, because Zbrush models tend to reach obscenely high polycounts and most modeling tools can't really support having them show up in the viewport. With proper foresight, I could have exploded the model before sculpting the highpoly in Zbrush, but this makes the sculpting process feel worse (imo).

What I do now (and what takes up a lot of my time) is that I export all of the high poly elements and their corresponding low poly elements as an OBJ and then manually bake a normal map for each element. Once each element is baked onto a map, I then go into photoshop and manually composite all of the maps via layers masking and then export my composited normal map. I was relieved to see that other people follow this process, simply because it made me feel better about my own pipeline, but I am convinced that there's probably a better and more efficient way to do this that I haven't found yet.

Does anybody have some guidance or words of advice to lend? How do you overcome compositing multiple normal maps?

Replies

  • Bartalon
    Options
    Offline / Send Message
    Bartalon polycounter lvl 12
    Hmm, you didn't really say which software you use for baking, but xNormal can composite multiple low poly models at once.  As long as all your bakeable meshes occupy unique world and UV space, it'll all get put in place at the same time into a single texture output.  For example, load in a HP mesh, then 15 exploded LP meshes with cages, and let the bake run.
  • Yokai
    Options
    Offline / Send Message
    Yokai polycounter lvl 11
    Bartalon said:
     For example, load in a HP mesh, then 15 exploded LP meshes with cages, and let the bake run.
    What happens, though, when the high poly geometry exists in a different point of space than the low poly? I mentioned that it would be possible to explode the model before doing the high poly, but that seems kind of counter intuitive to the sculpting process.

    I didn't feel this is particularly a software related question -- it's kind of more fundamental than that. 
  • beefaroni
    Options
    Offline / Send Message
    beefaroni sublime tool
    Decimation master?

    Then bake in Substance Designer with match by name and no cage.
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    beefaroni said:
    Decimation master?

    Then bake in Substance Designer with match by name and no cage.
    This is my route these days. Avoid the explode altogether.(but I use substance Painter)

    Also, because SD/SP/XN is only loading the .obj text file to memory it doesn't matter so much the polycount as the mesh will never be displayed in the viewport.

    But if you're intent on explode baking in ZB you can do it after the fact: when you're ready to bake, save out a new .ztool(character_bake.ztl) > merge all your high-res Deci meshes paired with their low-res counterpart(example:if you had 20 subtools, you now should have 10, each with the low/high pair as a single subtool) > use ZB's Xpose function(transform - xpose) to explode the mesh > finally split the subtools again and merge all the low and high so you have 2 subtools in your list > export the both the low and high explode mehes > bake them in XN > apply the textures to the non-exploded originals(UV space was not altered so obviously the maps will match perfectly without any compositing required)
  • FourtyNights
    Options
    Offline / Send Message
    FourtyNights polycounter
    I have the same problem, because most of the high poly work of my characters are worked inside ZBrush. Currently I'm working on a character I've separated to five materials, with one huge overlapping UV map altogether, but nothing is overlapped per material:

    - skin
    - clothes
    - hair/eyelashes
    - eye cornea
    - eye ball

    For example, clothes are on their on unique set of UVs, and they consist t-shirt, jeans, sneakers and a cap. The cap is made of five parts; a button, a cap "bowl", a visor and two straps behind the cap for size adjustments. So, after all, I'll need to do 8 bakes separately and compose them to one, which is a bad and a slow workflow. Problems are usually that I can't use too high edge padding when baking individual parts.

    I'd just like to bake everything at once and with much higher edge padding, like 64 or more pixels. And I'm using xNormal for all of the baking, which is a fantastic software by the quality it outputs.

    Even if I added multiple high poly models and their respective low poly models with their cages into xNormal, It doesn't treat them as an exploded scene. Position offsetting a pair of high/low/cage models away from other pairs with same values inside xNormal caused just horrible artifacts for some reason.

    EDIT: Just found out that the position offsetting was bugging till the version 3.18.10 of xNormal, and I've tested position offsetting on versions before that. So, I guess now it should work. :D

    http://eat3d.com/forum/questions-and-feedback/position-offset-not-workingconfused-purpose

  • LyleD
    Options
    Offline / Send Message
    LyleD polycounter lvl 4
    beefaroni said:
    Decimation master?

    Then bake in Substance Designer with match by name and no cage.
    This is my route these days. Avoid the explode altogether.(but I use substance Painter)

    Also, because SD/SP/XN is only loading the .obj text file to memory it doesn't matter so much the polycount as the mesh will never be displayed in the viewport.

    But if you're intent on explode baking in ZB you can do it after the fact: when you're ready to bake, save out a new .ztool(character_bake.ztl) > merge all your high-res Deci meshes paired with their low-res counterpart(example:if you had 20 subtools, you now should have 10, each with the low/high pair as a single subtool) > use ZB's Xpose function(transform - xpose) to explode the mesh > finally split the subtools again and merge all the low and high so you have 2 subtools in your list > export the both the low and high explode mehes > bake them in XN > apply the textures to the non-exploded originals(UV space was not altered so obviously the maps will match perfectly without any compositing required)
    I would love to work, Merging subtools will remove UV's tho. 
    Any way around this?
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    You can enable the UV button to merge and preserve UVs.
  • Neox
    Options
    Offline / Send Message
    Neox godlike master sticky
    it definitely is a softwarevrelated thing, name matching, bake groups or just batches would be solutions to your problem. so what are you baking in?
Sign In or Register to comment.