ZBrushCentral

Displacement artifacts on some UDIM-tiles

Hi!
I’m not sure if the core problem is a Blender or Zbrush related problem, but hopefully someone with some experience might recognize the problem I’m having.

So I’ve imported a sculpt with 23mil verts from Blender to Zbrush with 23 UDIM-tiles.
After adding subdivisions and projecting the highres > lowres I’ve tried to bake out the displacements to see so everything is correct before I start adding my high frequency detailings. Unfortunately it’s not…

4 out of the 23 UDIMs get some very noticable artifact lines that stretch over some of the UV-islands, destroying the displacement. The rest of the displacements are baked perfectly.

Here are a couple examples (ofc. heavily adjusted the levels for better visibility)


^These displacements are baked to SDiv 1.

For the 1001 tile, that lighter grey artifact box covers up some UV-islands completely, giving me no displacement on those islands whatsoever. Other examples it partialy covers islands, giving noticiable problems where it interesects.

Here’s the most recent Multi-Map Exporter Settings I’ve tried.;

I’ve also tried the following… map border 16, baking to level 1, disable adptive+DPSubPix = 0-

Here’s the seams and UV islands, if these for some reason could be the cause;
seams

^the seams are the red lines on the model, and for the UV-islands stretching is equal to red=bad blue=good.
Reason why there’s some yellow, because I scaled up the tounge and arms to cover more space on its UDIM tile So basically no stretching.

I can also add that there were basically no artifacts after re-projecting highres to lowres in zBrush,

And one last important note is that when baking the Displacements in Blender, there’s none of these artifacts appearing on the UDIM-islands.

Thanks!

Hello @Gurra ,

Common problems include:

  1. UV layouts where some of the islands are touching the border of the UV space. I see this is the case in some of your layouts. ZBrush doesn’t like this, and can generate that kind of stretched UVs error as a result. You will want to make sure there’s a gap of a few pixels of empty space in between the islands and the edge of the UV space.

  2. Failure to restore the original geometry prior to generating displacement maps for geometry that must match the exact geometry in an external file. If you are exporting your geometry directly from ZBrush and applying the maps directly to that exported geometry, that isn’t an issue. But if you are importing geometry, subdividing it to generate maps, and attempting to apply those maps to another file, the maps generated won’t match that geometry exactly. The very act of subdividing a mesh alters it slightly at all levels of subdivision. If you attempt to apply those maps to the original geometry, you are likely to encounter seam issues between the UV islands. It is necessary in that situation to re-import the original geometry just prior to generating any maps, as described in the documentation.

  • However, this issue is more likely to result in gaps between the islands, and not the sort of stretched geometry you’re encountering. I can only guess at your problem, but my money would be on #1.

Good luck!

1 Like

Thank you for the fast reply, and yes, it seems very likely #1 is the solution to my problem, as all the affected Udim tiles had UV-islands that are extremely close to the border and 1001 even overlapping 1002 slightly. Sloppy misstake :slight_smile:

I’m not sure I fully understand #2 tip, the documentation tells me how to convert a Texture into PolyPaint / PolyPaint into texture, is that the correct documentation?

“Original geometry” does that refer to my retopology mesh or my highres sculpt?
Because in Zbrush I’ve projected my HighRes > retopology and added the necessary amount of SDivs to project the information of the highres. But what are you suggesting I should do with original geometry before generating my maps more exact?

Would love to understand your second tip even though that’s not the solution for my currect problem, it might be in the future.

Thanks!

Certainly.

When you subdivide a mesh it alters the form slightly at all levels of subdivision. This is a result of the subdivision smoothing process itself, and unavoidable. Therefore if you import a mesh, subdivide it, and generate maps for it, you are no longer generating maps that will match the imported geometry exactly. If you take those maps and apply them to the original imported geometry in an external application, you will likely encounter seam issues because the islands have drifted slightly due to the subdivision process.

If you instead export the altered geometry from ZBrush directly and apply those maps to it, there will be no issue because that is the geometry those maps were generated for.

In order to correct for the first situation, the recommended procedure is to store a morph target for your base or import level topology, switch to it immediately prior to generating any maps, and re-import that original mesh into the active tool at the same level of subdivision in order to restore the original position of all the points. Then, generate your maps without switching subdivision levels again (as this will again alter the form). In this way the maps for the high res detail will be generated for the original geometry that it must match in the external file, and not the geometry that has been altered as a result of the subdivision process.

The manual process for this is explained on the page I linked previously. The way to do this in the automated Multi Map Exporter process is explained in the SwitchMT section of the MME documentation.

Good luck!

Ah, I see what you mean now, that makes alot of sense. I’ll definitely use this solution aswell to minimize any risk of seams.

Thanks again for you all your help, it’s all been very useful!