Hello everybody!
Newcomer here.
I've just recently started to follow a game design course and we've started to tinker with ZBrush for hiPoly-to-normal-map baking. We're not supposed to try sculpting, yet, as we're still at an early stage with the lessons....but I just couldnt wait!!
Basically, this is the workflow:
.: LowPoly model w/ UVs in Maya
:. Import lowPoly into ZBrush, subdivide and sculpt
.: Bake normal map from hiPoly and export as PNG
:. Splat normal map onto lowPoly in Maya
Well, let's just skip all the problems I've encountered with understanding ZBrush's quirky workflow *sigh*; now I'm having problems with baking the normal maps.
My teacher told me to use the "Crease" function to maintain certain edges during subdivision, so that they wont get eaten away by the smoothing process. And it works, it really does, but now it seems this thing is also compromising my normal map output.
What I get (or rather dont get!) is that all the faces around the creased edges are missing, in the normal map. The quads around the creased edges are, like, completely ignored!
I tried to "UnCrease All", but I get the same result: [
https://ibb.co/mFHTgS ]
See the missing teeth and that flat stripe around the temples? It's soooo frustrating! >.<
I've also tried to use XNormal, but the output is....<unusable>, to use a euphemism. I get odd squares in place of the object's details, or I get the right-ish figure but with improbable colors (and still missing strips of details!).
And the funny thing is that I cant tell which settings result in one outcome or the other!
Personally, unless XNormal produces way better normal maps than ZBrush, I'd rather use the latter to bake them. It would mean one step less in my still-evolving-workflow.
Ideally, I would like to have a steady, standard workflow that works independently of what I'm modeling/sculpting. A man is allowed to dream, after all.
Anyway: crease = no normals. Why?!
I've tried googling for hours, but it seems I'm the first human being on this planet that is facing this issue. My luck!
Thus here I am.
Any help, hint and suggestion is very welcome. Thank you!
PS: this is my third sculpture (and third skull too!) EVER. Please be kind with your comments. ^^'
Replies
And embed your images.
http://polycount.com/discussion/63361/information-about-polycount-new-member-introductions/p1#tricks
Make it absurdly easy for people to give you feedback, and you are more likely to be rewarded with answers.
Baking in zbrush might seem simpler at a glance, but its the kind of simplicity that comes with many limits - limits that will only complicate your workflow as opposed to the alternatives. Meanwhile dedicated baking solutions like xnormal are the "steady, standard workflow that works independently of what you're modeling/sculpting".
Personally I'd start by checking for duplicate faces/overlaps. You can do this externally in Maya, or by creating a "New From UV Check" texture map inside Zbrush to see if it is detecting any such overlaps.
First of all, thanks to both of you for answering my question so promptly.
I have some updates.
Yesterday night, minutes before falling exhausted onto my bed, I discovered what went south with my model: the "Crease" function added new edges to my model.
What's odd is that the model didnt lose the UV mapping, which already happened several times with much less intrusive operations.
I noticed it only because I toggled the "Line Fill PolyF" on and these two areas with a different colouring popped up.
Seemingly, that's the reason why the normal map shows holes: the topology around those areas has been changed.
I would've expected ZBrush to destroy the UV mapping, after this nasty trick of his, but apparently he's perfectly fine with it. Except, maps no longer bake properly.
Nonsense.
So, now I have to learn how to use the original low-poly skull to replace the one in ZBrush as the base mesh for the hi-poly sculpted version. And without losing the UV mapping, or it'd be utterly useless.
I think I've read somewhere that it's possible, but I couldnt find how. A brief list of instructions would help a lot.
OR, alternatively, how to revert this madness without losing the UV mapping.
For the ZBrush/XNormal quality difference, this is how they look (ZBrush on the left, XNormal on the right):
For XNormal, the "Baking options" are:
.: Edge Padding: 2 (an exaggerated padding was the cause of the initial weird results)
:. Bucket size: 32
.: Closest hit: on
:. Discard back-faces: on
.: Default bucket renderer (OpenRL doesnt seem to make any difference and Optix/CUDA makes XNormal crash)
The LoPo and HiPo obj files have been both exported out of ZBrush, so to assure a 1:1 correspondence. Ironic indeed.
I've also calculated the ray distance with the specific tool, which probably is the reason behind those artifacts in the upper/outer corners of the eye sockets (?).
All the other parameters should be the default ones, for what I can remember.
By the way, is there any way to use the hi-poly model from ZBrush without having to export it as an obj? The resulting file is huge!
For those who might be wondering, yes, I did try asking my teacher (since he's the one who taught me this Maya->ZBrush workflow), but it seems he doesnt like me to explore so much ahead of my fellow students; he dispatched me with a wink and a phrase that sounded something like "dont bother me any further, just wait for the next lessons to see how to make it or find a solution yourself".
Devastating frustration, my newly found companion.
I really hope you can help me solve this problem with the missing areas, I'm not sure I could survive sculpting a fourth skull. It's for the teeth...all those teeth.
And, if it's just not possible, I'd appreciate if you could teach me a different technique to prevent the smoothing process from eating away specific edges.
Thank you.
PS: if you need me to post any other screenshot/parameter, just tell me.
PPS: this is what happens if I try to use Maya's LP and ZBrush's HP in XNormal with the "match UVs" option on:
With "match UVs" off I get some small squares with the same improbable colors. Not worth showing.
Xnormal Results:
I've tried your techniques (@cryrid), the "Project All" one first because it sounded more solid, from a topological point of view.
.: I have imported the low-poly skull as a new subtool
:. Manually aligned it to the sculpted one (apparently, it doesnt work unless the two models are overlapping)
.: Selected the low-poly one and left the other visible
:. Lowered "PA Blur" to 0
.: Given the cage a positive value (one that made it look suitable, or just big enough...?)
:. Set the distance to a higher value
.: Hit "Project All"
:. Subdivided
.: Hit "Project All"
...and so on with subdivision and projection up to the desired level
Alas, the result wasnt good, as many artifacts (vertices gone crazy!) showed up.
I've also tried to subdivide the low-poly model straight to the desired level and then use "Project All", but I only managed to get a bit less artifacts (since they didnt pile up through each subdiv).
This is the result:
The one on the left is the target/resulting model, while the one on the right is the source (please, ignore the silly polypaint, I was bored).
Notice the nose cavity and the eye sockets?
Fact is I have no idea what might've caused them, so I dont know what to change in the procedure.
The "freeze/unfreeze" method gave artifacts too, but of a different nature:
Again, I have no idea what I could/should've done different in order to get the correct result.
What I did is:
.: Cloned the model
:. Froze the clone
.: Replaced to resulting low-poly with the the one exported from Maya
:. Manually aligned the imported model with the original one and scaled it down a bit
.: Unfro....unfree....well, hit the freeze button again
...and thas is the result.
If you could give me a more detailed explanation on both the procedures and on how to pick values for each parameter...I moved around a bit too casually, to be honest.
Thank you.
PS: the default padding value in XNormal was 16, which caused the padding to overlap the UVs to the point you couldnt tell what you were looking at. Not to mention all those yellow and orange tones.
Here's a link to the ZPL file: [https://www.dropbox.com/s/8pk6jaixufq6r44/Skull%20HP.ZTL?dl=0 ]
I hope it's what you're looking for, I'm not sure whether I did it the right way.
I've left the two subtools visible and deleted all the unnecessary ones, and then saved the "Document". The ZPL file is a 46MB beef thus I think we're safe assuming at least the hi-poly subtool is in there.
Thanks a lot for your very quick answer.
Nevermind.
I guess I'll just have to redo the whole thing starting from the obj exported out of Maya.
This is sooooo frustrating! If only I could know how the heck I got those extra edges!! To prevent any future disaster...
Ideally, I should not need to tamper with the low poly and its UVs at all, once I'm done exporting it from Maya.
My problem with this thing is that it's meant to be a prop for a videogame, so I'd use a fast and steady workflow that, hypothetically, should be something like: Maya LoPo -> ZBrush HiPo -> ZBrush (or XNormal) normal maps -> Maya texturing (and animation?) -> Unreal Engine.
I cant really afford to go through this misery every time ZBrush decides it's time to screw up my topology.
If only this game design course wasnt so slow..... -.-
By the way, is there any way to, like, lock the number of vertices/edges of the LoPo in ZBrush?
Like, you know, you teel ZBrush that's the base mesh and nothing can be added or subtracted....?
That would help a lot! =O
I wouldn't say its a disaster. Both options I presented only require 30seconds - 5 minutes to fix and left me with models and maps I could load into an engine to preview.
You could either subdivide at least once before you start doing anything, or create a new layer if you really want to lock those subdivisions down. Both of these options rely heavily on the existing geometry, so as long as either of these things exist on the tool then zbrush will prevent you from taking any actions that will modify the topology.
First of all, I'm impressed by the animation. I really am! =0
Thank you for all the work you're putting into helping me.
My mouse is being a bit quirky, these days, so who knows, I might've actually misclicked without noticing.
But I almost exclusively use the graphic tablet, with ZBrush, so.....well, it can still be.
Anyway, thank you for those solutions for locking the base mesh. Especially the "subdivide once first" one, it's that kind of simple solution I like so much.
What about the other one, though? How does the "layers lock" work? Step by step....?