ZBrushCentral

Trouble with baking Displacement, one UVshell stays black

Hello everybody,

I have a serious problem with a simple mesh, where displacement is never baked for one UV-shell.
(I was first fighting a half day with my rendersettings. until I realized, that zBrush causes the failure, which was only obviously when brighened up the exr-displacement map in photoshop :()

I nearly tried every possible zbrush setting (MME) with and without smoothing… Normals were also checked in Maya…

Attached screeshots
Thanks for suggestions

my UV shells:
ZBrush UVshells.jpg

what MultiMapExporter uses for displacement
one UVshell no displacement.jpg

how wrong it turns out in rendering (should be a smooth transition there)
Displacement problem.jpg

I made in rendering visible, where the DM is staying black:
displacement visible surface shader.jpg

Can you let me test the model? Perhaps you can upload to Dropbox or somewhere. Send me a PM if you want.

Thanks,

hi marcus,

oh, this would be great, if you could have a look!
I will look tonight for the files and send you a dropbox link.

many thanks in advance…

Hi,

I think you need to set the Tool>Displacement Map>Mid slider (or the equivalent in MME if you are using the plugin) to 0.5. The reason is that the interior of the cylinder is larger at higher subdivision levels than at the lowest level so the displacement needed is the reverse of the exterior. If the mid slider is at 0 there isn’t the necessary range available for that UV shell.

HTH,

Hi Marcus,

many thanks I will try that.

I thought that “mid” is just for setting the neutral mid value of the map,
which means with 32bit that the mid between the minimum range of -1 and maximum of 1 is 0.
(whereas at 16bit we have a range from 0 to 1, which means that the mid is 0,5 then.)

So it means that mid is defining instead the mid of the mesh projection cage and not the value offset of that displacement map.
Did I understand this correctly?

Furthermore I had another idea:
Wouldn’t it be more optimal to reproject the highest sublevel on its own lowest, to make sure that the lowest SubDiv level isn’t too different from the final result at the highest level? (in this case the size was too different)
It would be possible by duplicating the lowest and then reprojecting all levels again.
Is this something recommendable?

Best, Alexx

(I was first fighting a half day with my rendersettings. until I realized, that zBrush causes the failure, which was only obviously when brighened up the exr-displacement map in photoshop :()

When you bake exr displ. map you can see only positive values, negative values are not visible because they are below black point of our monitors.
But renderers can read that values and turn them to negative displacement (indents)

Brightening in photoshop just make positive values more brighten, negative stays black. So if you see it black that doesn’t mean its not there.

Read and follow this:
https://www.cggallery.com/tutorials/displacement/
Although i’m changing some things, mainly in Vray_3dsmax, following this procedure should give you good results and NO VISIBLE SEAMS in displacement
Edit:
Looks like you read some of that already…

Wouldn’t it be more optimal to reproject the highest sublevel on its own lowest…

Don’t know how you get so different meshes on diferent levels, in normal workflow with subdiv. you souldn’t need to do that

Hi Modos,

thanks, I measured the 32bit exr and it indeed has map information for all UV shells. And when brightening up the positive values at the same time the negatives go even more below zero and stay therefore always invisible.
I didn’t know how a “brightness adjustment” works with negative values, I thought it is kind of an value offset, but it is a multiplier even for negative values, too)

  • Is there any trick to make that 32bit map in photoshop to make it visible?
    Invert does not work in Photoshop at 32bit.

I know Akins tutorial already since a long time…
It’s the workflow I am using (except choosing “raw” instead of “linear”, which is the same as far as I know),
but I have anyway often on seams or sharp corners some issues.
That’s why I want to deeper understand displacement.
His examples are great but quite round or flat, nothing complicated… there is no sharp cube or no cup with thin walls.

  • I will try once the reprojection, too, I had widened the “cup” at highest level and maybe the lowest wasn’t enough influenced.

Yes, I made a mistake for 32 bit. And thanks Modos for clarifying. That’s a very useful link.

You can make the 32 bit visible in Photoshop. You need to do two things:

  1. In Image>Adjustments>Exposure set the Offset to a positive value such as 0.25. This shifts all the values towards the positive and will turn the map grey.
  2. In Image>Adjustments>Levels adjust the three input levels so that they are close to the actual values.

Adjustments.jpg

It shouldn’t normally be necessary to use projection in order to get a good displacement. When dividing and sculpting a mesh ZBrush automatically adjusts the different subdivision levels. (You can see this if you divide a cube - the lower levels won’t remain the same unless there a too few points to adjust.) In fact, for some workflows it is necessary to import the original mesh at the lowest level so that the displacement is calculated for that rather than the adjusted mesh.

Attachments

Adjustments.jpg