Vray + ZBrush Displacement seams

Hello;

I’m trying out ZBrush displacement with VRay and I’m not getting anywhere. I keep getting black specks when I render and upon zooming in, the black specks turn out to be detached seams of the UV’s.

I’ve tried everything from “Fix seams” in ZBrush to using the VrayBMPTex material.

I’ve tried both 3d and 3d displacement.

I’ve subdivided the model numerous times with meshsmooth and it doesn’t get any better.

I’ve tried converting the texture to another format but the black seams are still there.

I’ve tried using the latest Vray build, instead of my usual 1.45.70

I’ve tried exporting the displacement map at 4096x4096

I’m using Adaptive UV’s in Zbrush although when I attempt to try it with Group UV’s, the texture gets messed up.

I’ve searched the ZBrush forum and found others with the similar problem (identical problem, actually) but no resolution was posted.

Any help would be appreciated.

Thanks,
-Richard

Richard first of all, make sure that your exported texture is flipped on -y axis as zbrush exports it flipped. Next, I usually get white dotty splotches along the seams, I go and manually paint them out. Finally try checking in vrayDisplacement mod keep continuity. That might help. If you can post a picture of what you are getting it would be easier to say.

Hi Dmitry;

I’ve tried the suggestions you made - same result. Here are some examples.

This first image shows the black speckles (well, here you can already see they are lines):

When you zoom in, you can see they are seams at the UV patches:

And here is a sample of the mesh topology - not the cleanest but it shouldn’t be the cause of the problem:

I’ve had this error occur to me with even a simple sphere and displacement. I’m not sure if I’m just missing a step in ZBrush or VRay.

Any help would be appreciated.

Sorry, don’t know why the image links aren’t working - just paste the url.

Thanks,
-Richard

hmm, I never seen this before…can you send me the file? you say that you have this issue with simple sphere…does this happen only with zbrush maps or with any map?
Almost seems like the original cage is being displaced individually face by face. If you can show your displacement map that could help too.

Richard,

Do the seams increase in size if you crank up the amount of displacement?

do you have the tight bounds setting switched on? I remember getting separation between sections in the past when that wasn’t switched on.

Vance Miller

Hey guys;

Yeah, I’ve tried tight bounds and keep continuity on. I too remember keep continuity was a problem at one time.

Here’s a question - I never use Group UV’s in ZBrush, just Adaptive. Could this be the cause of the problem?

-Richard

very well could be. You could try to uv map the model prior to import to zbrush. Thats the way I prefer.

It may help if you use the VRayBmpFilter plugin as the displacement map, instead of the regular Bitmap of 3dsmax.

Best regards,
Vlado

Hey Vlad;

Tried that one too. No luck.

Must be a step I’m missing in Zbrush because I’ve seen renders that work in VRay.

-Richard

I seem to remember som iffyness when working on a model in zbrush where I had used the “smooth uv” (or a similar named button). In addition, there is a feature for exporting with a compansated smoothed uvmap or something ( pardon my vagueness, but its been along time since i used it:)

Hey Richard, do you have camtasia? I’d like to see how you repro this.

Are you checking “mode” under displacement in Z? I thought for sure (before I read your whole post) that you just needed to add a level of subdivision before you rendered it. That’s important btw. The keep continuity doesn’t do the same thing. I don’t even use that option actually.

And imo, I wouldn’t even touch anything under the “tool > texture” unless you know exactly what everything does. Or any texture tweaking of any kind in zbrush for that matter. In Max, unwrap your model and use those mapping coords from then on out. So…

- Model and unwrap in max
- Import your model into Z.
- (this is my personal workflow) re-export your model back to Max and check the uv’s to make sure they are correct. Now you are going to use that version as your base.
- Now back in Z, create a morph target (if you forgot don’t sweat it you can reimport the same model again to get that same target back to use as your base to create a disp map) and then paint and make magic happen.
- Create a disp map and export it as a 16bit tif. Don’t forget to flip vertically. Also, some renderers don’t like a greyscale 16bit image (MR), so a quick greyscale to RGB conversion in PS will fix that.
- Back in max, apply the new disp map to a material and apply a displacement modifier to it. Disp mod settings are a trial and error kind of thing… so play with it.
- Make sure to apply at MINIMUM a level 1 iteration of meshsmooth or turbosmooth.

I might be leaving something out so if I forgot, I appologize. If you can provide a quick video of you reproducing this I’m positive I can help you fix it. It’s hard unless you know every little thing you are pushing along the way.

Hi, Richard! Weld all vertex or take advantage of the converter from Deep Exploration, and export from him model OBJ to a format obj - copy your file over & use 2D displace in VRdisplMod & VRBmpFilter - but no use Flip U or Flip V - they cause mistakes; Uu-offset & V- offset - 0.0 (Tips&Triks from Triar)

Hi guys;

Thanks for your suggestions. I’m going to try some of these techniques. I think my work flow is different than that of GeneCrucean for instance, and so I may have missed some of the steps he mentioned.

I’ll try a few more tests with all of these suggestions and if I’m successful, you’ll see my first Z-Brush/VRay post soon enough. :slight_smile:

Thanks again for all your help, guys. I’ll keep you posted on my progress.

BTW, GeneCrucean. When you say Unwrap your model in max before exporting, do you mean use the UVW Unwrap modifier? What exactly is this process? I was always under the impression that you would create your UV’s in ZBrush after importing the Max file?

-Richard

I was thinking the same thing - what do you mean by unwrap your model in max before exporting into Z? - is it just front-align all the vertices so that you can get easier a 2d map for them.

The only reason to map your model in max first, is to get a uv layout of your own design, and make it easier to edit in other applications like photoshop afterwards. (Try retouching the auv tiles in photoshop, hehe). This also has the side benefit of minimizing the amount of uv seams you get, lessening the chances of broken seams like it looks like Richard has in this example. In theory there should be no problem using the auv or guv tiles in zbrush though, but as zbrush’s interface was designed by an alien crack head, lots of folks, including my self, get confused when it comes to the right procedures. So setting up uvs in max first is a good way of controlling ones environment, and lets other texture artists contribute through other painting apps without having to go through the whole learning process of zbrush.

Correct me if I am wrong, but to properly unwrap a 3D object in front viewport in max includes a lot of detaching of vertices, elements, moving around and rotating, ZB on the other hand from needs only the 3D object as it is and it automatically assigns the correct uvs around it in projection master if I am correct. So, which one is more time-consuming and difficult?

You can have a look at this - it is the ZB forum, I think it requires you to register first.
http://206.145.80.239/zbc/showthread.php?t=20310&page=23&pp=15

Not sure what you mean by unwrapping in the front viewport though Tisho, but sure, unwrapping the uv’s in max is more time consuming, and can even be slightly painful, but is usually worth the hassle. This becomes very evident when trying to make uv coordinates that are placed so that texture stretching is minimal. (Not the static stretching, but the stretching that occurs when animating the head, jaw and morph shapes).

Well, I use Z-Brush and Vray all the time. I actually used to run into this issue quite a lot until I finally discovered the way that works for me:

IN ZBRUSH>
1.) Build your base model in Z-brush with Z-Spheres or other modeling program (Silo, Modo, Max, whatever).

2.) Save the tool as a polymesh in ZBrush or import form other program. You should be sculpting on a Polymesh and not the original Z-spheres model.

3.) Choose GOV or AV before you start sculpting. Subdivide (to level 7 or so) and Sculpt your displacement… Don’t forget to save the tool.

4.) Go to the base level (Level 1) of your mesh and create a displacement map at a very high resolution. I usually just crank it up to 4k but you can make it smaller is memory is an issue. I use “Smooth UV” and “Adaptive” when creating.

5.) Go to the “Alpha” menu and choose the newly created Alpha Map, flip it vertically and export as a Tiff image.

6.) Export the base mesh as an OBJ.

IN MAX>
1.) Import the OBJ and put a VrayMtl on it.

2.) In the material editor, add the TIFF Image to the displacement slot. Sometimes I stick it in the Bump slot too if it still looks to soft in the end. Make sure to turn off filtering in the texture map. This is important because Max’s filtering really messes up 16 bit per pixel images.

3.) Add a VrayDisplacement modifier to the mesh.

4.) Drag and drop the displacement map from the material editor to the displacement slot of the VrayDisplacemnt modifier. Choose to make an “instance” of the original

5.) Choose “Smooth” Not 2d or 3d! This will smooth and displace the mesh dynamically and helps save memory. In my opinion, it’s better to do this then adding a mesh or turbo smooth because it saves memory. When you’re rendering huge amounts of data it really does make a difference. besides, if your using a displacement map, Vray is going to control the subdivision level anyway so why not just have it smooth it dynamically as well.

6.) Set the “use tight bounds”, “Keep continuity”, and “use material” check boxes in displacement modifier.

7.) Play with the “Shift” and “Amount” settings until you get it to look right. In my experience, Shift should be negative one half of the “Amount” value. So if you have an Amount of 4 your shift should be -2.

That should do it. The key to this is not using Max’s mesh smooth and letting Vray handle that and displacement at the same time.

trixian: I mean that you can use the front viewport as an align plane for the polygons and later use this as a template for photoshop painting.

ngrava: I am trying what you said now …

here is what i have - simple object:

basically it is an exported geosphere in dxf format (obj messes up the object) and then subdivided to lvl 5 in ZB, sculpted, then created a 4k displ map with Adaptive and SmoothUV on, flipped the map and exported as tif, exported the object also in obj format (it works this way around).

Then in max, import the modified sphere (middle object on the picture) and apply a material with displace on it with filtering off, apply and a VRDispl mod with all checked and amount 8, shift -4. There seems to be creases similar to the ones Richard has - i have seen this before too. :slight_smile: