Home Technical Talk

ZBrush object import and mirroring UVs

n2k3
polycounter lvl 4
Offline / Send Message
n2k3 polycounter lvl 4
I'm having a hard time understanding how certain steps work when importing objects into ZBrush and how it detects changes made, and what options it gives me upon detecting those changes.

What I would like to achieve is this:
Create mirrored UVs for my lowest retopo'ed subdiv after I already detailed the highest subdiv (without losing the higher subdivisions).

Wall of text incoming :)

I now know, after the fact, that I should've created my UVs while I did my retopo, but that aside, here's my workflow:
  1. Started in ZBrush with ZSpheres into Adaptive Skin as basemesh of a female character
  2. Detailed it until a certain point where I needed more detail for the face/hands/feet and less on the body
  3. Did my retopo in ZBrush (at this point I should've done my UVs)
  4. Reprojected the detail on the retopo
  5. More detailing on the face etc
I now made my UVs on the lowest subdiv that was exported via GoZ to 3ds Max, using this workflow:
  1. Delete half of my mesh
  2. Create seams and relax the shells
  3. Packed the shells
  4. Added symmetry modifier, with weld seam on
  5. Collapsed the stack
  6. Exported back to ZBrush using GoZ
I noticed, after that I deleted half the mesh and then using symmetry to get it back with mirrored UVs, is not something I can use because it changes the vertex order which ZBrush needs to detect changes (or something?). Whenever I change the vertex order and re-import (either using GoZ or manually exporting from 3ds Max and importing in ZBrush) it doesn't detect it as a change of the current selected subtool and imports it as a whole new subtool (without the dialog if I want to re-project the detail).

So now I'm left with two possible solutions
  1. mirror UVs using an alternative way (not deleting half -> symmetry), and/or
  2. figure out how to let ZBrush properly detect my imported object as a replacement, and thus only add UVs without reprojecting anything
Bear in mind I'm quite new to ZBrush so maybe there's a really easy way to fix / work around this problem, but this what I tried myself without success:

Using the Map Channel Info in 3ds Max to copy from UVs from the object with UVs (highlighted green and has changed vertex order) to the one re-imported using GoZ (highlighted orange and has same vertex order as the subtool in ZBrush)
  • select uvMesh, go to Tools -> Channel Info, in this window select the 1:map channel, click copy, select the nonUvMesh, select the 1:map channel, click paste
    • resulted in garbled UVs (probably because of changed vertex order)
Tried copying UV map channels using the Unwrap UVW modifier:
  • on uvMesh, add Unwrap UVW modifier, Open UV Editor window, enter polygon(face) sub-object level, select all polygons(faces), edit -> copy, select nonUvMesh, add Unwrap UVW modifier, Open UV Editor window, enter polygon(face) sub-object level, select all polygons(faces), edit -> paste
    • resulted in garbled UVs (probably because of changed vertex order)
  • on uvMesh, add Unwrap UVW modifier, Click Save, save correct UV map channel to file, select nonUvMesh, add Unwrap UVW modifier, click Load, select file
    • resulted in garbled UVs (probably because of changed vertex order)
  • on uvMesh, add Unwrap UVW modifier, right-click the modifier in the stack, click copy, select nonUvMesh, right-click in the stack and click paste
    • resulted in garbled UVs (probably because of changed vertex order)
Tried using a Projection modifier to re-project the first UV map channel:
  • on uvMesh, add Projection modifier, click Pick and select the nonUvMesh, Push the cage with an amount of 0.002, add a Projection Mapping (defaults to projecting first uv channel), click Check to see if any errors, select the nonUvMesh in the reference geometry list, click project
    • the uvMesh and nonUvMesh are on the 'exact' same position, when clicking project it results in 3ds Max crashes? always??? Tried bigger cage, still crash :(
Import/export was done using GoZ
Tried manual export from ZBrush and manual import to 3ds Max using the ZBrush obj import profile.
Tried copy/paste UV's from manually imported obj back to the nonUvSubtool
Tried Morphix 2.0 plug-in for 3ds Max, but I'm not sure about the workflow, it just copies the nonUvMesh ???
Tried using UV Master Zplugin for ZBrush to copy the UVs from the newly created subtool on import back to the lowest subdiv on the subtool that has the high poly detail.

You might also suggest, why don't you just reproject the detail on the mesh with UVs in ZBrush?
Because it somehow doesn't transfer all details like it would if it had detected it properly on import, somehow this is different. So I tried the 4 or 5 different methods of reprojecting detail in ZBrush, but again without success.

Been stuck on this for a couple of days now and its really getting on my nerves, maybe I should not want UVs in ZBrush and use xNormal to bake? :<

Replies

  • cryrid
    Offline / Send Message
    cryrid interpolator
    Bear in mind I'm quite new to ZBrush so maybe there's a really easy way to fix / work around this problem,

    The trick is to not worry about UVs and to bake your maps outside of zbrush :P

    Decimate your sculpt, export it as an obj, and bake in xnormal
  • n2k3
    Offline / Send Message
    n2k3 polycounter lvl 4
    Hmm, after much trial and error I settled with minimal detail loss. I re-imported the mesh with UVs and reprojected each subdivision using Tool >> SubTool Palette >> Project SubPalette >> ProjectAll with a distance of 0.007. Lesson learned I guess...
    Note to self: create UVs while doing retopo :)
    2nd note to self: Using Tool >> Display Properties SubPalette >> Flip will screw up your UVs (when you have more than 1 SDiv levels)

    edit: *6+ months later*

    3rd note to self: Using Tool >> Geometry SubPalette >> Freeze SubDivision Levels will just flat out delete your UVs :poly127:
Sign In or Register to comment.