Home Technical Talk

Zbrush - hard edge seams on soft edged low poly mesh ?

Hi there :)

Im having a bit of difficulty in zbrush producing good normal maps. My problem is to do with seams. If i make my mesh completely soft im still getting very hard edge seams in my normal map bake from zbrush and i dont really know why.

My process is this;

1) Create low poly mesh inside maya & make a uv set. Smooth all edges that need to be smoothed and then export mesh as an .obj file

33m6ek9.jpg
28bcz6o.jpg

2) Open zbrush and import low poly mesh. Divide a few times to add some divisions then turn smooth on to get nice bevels on the edges. Do a very quick sculpt and then go into multi map exporter > normal and bake out. I even try with creating a new texture and going into the normal map palette and creating via the normal way and i still get the hard edges seams.

multi map exporter
25i3ign.jpg

zbrush normal map creation
1zmmrg4.jpg

Any idea whats going wrong ?

Thanks :)

Replies

  • McGreed
    Options
    Offline / Send Message
    McGreed polycounter lvl 15
    I would not recommend that you have smooth groups for 90 degrees. You need to have some space between the islands. Try making the UV islands like this instead:

    newseams.jpg
  • passerby
    Options
    Offline / Send Message
    passerby polycounter lvl 12
    @mcgreed no smooth groups in maya, just hard and soft edges.

    @Battery what he said still stands you should have uvspilts and hard edges at 90deg angles, here is a little script i use that marks all the uv island boundaries as hard edges.
    string $objList[] = `ls -sl -o`;
    string $uvBorder[];
    string $edgeUVs[];
    string $finalBorder[];
    
    for ($subObj in $objList) {
    select -r $subObj;
    polyNormalPerVertex -ufn true;
    polySoftEdge -a 180 -ch 1 $subObj;
    select -r $subObj.map["*"];
    
    polySelectBorderShell 1;
    
    $uvBorder = `polyListComponentConversion -te -in`;
    $uvBorder = `ls -fl $uvBorder`;
    
    clear( $finalBorder );
    
    for( $curEdge in $uvBorder ) {
    $edgeUVs = `polyListComponentConversion -tuv $curEdge`;
    $edgeUVs = `ls -fl $edgeUVs`;
    
    if( size( $edgeUVs ) > 2 ) {
    $finalBorder[ size( $finalBorder ) ] = $curEdge;
    }
    }
    
    polySoftEdge -a 0 -ch 1 $finalBorder;
    }
    
    select -r $objList;
    
  • CheeseOnToast
    Options
    Offline / Send Message
    CheeseOnToast greentooth
    To answer the original question, Zbrush has no soft normals. All edges are hard. Try baking with Maya itself, or use Xnormal instead.
  • Battery
    Options
    Offline / Send Message
    Thanks for the replys, the information given has totally helped. One small problem im getting now is that if i export a mid level model out from zbrush and apply the normal map to it, i get a very small seam. As you can see in the pic. The one behind is the low poly version from maya with no seams.

    My question is how do i get rid of the seam in the mid poly version ?

    scqaf9.jpg
  • cryrid
    Options
    Offline / Send Message
    cryrid interpolator
    One small problem im getting now is that if i export a mid level model out from zbrush and apply the normal map to it, i get a very small seam. As you can see in the pic. The one behind is the low poly version from maya with no seams.

    If the normal map wasn't baked with the mid-level mesh, then it probably wont look correct on it (especially near the edges where the normals could be different)
  • Battery
    Options
    Offline / Send Message
    I tried exporting the mid level mesh and putting that into the low res mesh part for xnormal. But the normal map generated was fairly bad.

    For workflow, is it best to create a very basic low poly mesh, export it into zbrush. detail all the gouges and things you want in the model and then use that as your low poly base mesh and detail that in zbrush with the fine details like noise etc in the normal map ?

    Im looking for a film/broascast/commercial workflow really where im not so limited on the amount of polys I can have in the base mesh.

    Cheers
  • passerby
    Options
    Offline / Send Message
    passerby polycounter lvl 12
    quite often the changes to the base mesh will be too large, to use it again for the bake, i would detial in zbrush, and retypo, or in the case of the pillar use decimation master to make a lower poly verison and bake to that.
  • Battery
    Options
    Offline / Send Message
    Thanks passerby, that makes total sense. one last question. How does the new retopo'd base mesh get the same uv's as the sculpt's for baking ?

    For instance. I create a very basic base mesh in maya and uv it. bring it into zbrush & detail it. Retopo and export the retopo out as the new base mesh. how do i transfer the uv's for it ? Or do i create new ones in Maya for it ? But if i do that it wont match the uv's of the high detail mesh. Am i missing something ?

    Thanks.
  • cryrid
    Options
    Offline / Send Message
    cryrid interpolator
    The sculpt wont need UVs, only the final game mesh.
  • passerby
    Options
    Offline / Send Message
    passerby polycounter lvl 12
    teh high dosnt need UV's at all, only the mesh that detail is being baked onto
Sign In or Register to comment.