Having issues with high Perlin Noise Bump strengths

I’ve attempted to contact Daz3D’s technical support about this matter, but was advised that Daz themselves didn’t develop the Shader Mixer used in Daz Studio and that I should request advice from Nvidia.

I’m attempting to create a custom shader to be used in Iray, for which I need to procedurally generate bump/normal mapping.

This is fine when the Perlin Bump Noise block is told to generate a map of a strength between 0 and 1 - for example, strength 1:

(There would have been a picture here, but the forum won’t let me use more than one image, which is very unhelpful)

But the normals become noticably faceted at higher bump strengths, apparently overpowering the face normal interpolation - for an extreme example, strength 100:

Particularly when finer tiling is used - here’s an example of that at strength 5:

(There would have been another picture here, but again, the forum won’t let me use more than one image…)

For the purpose at hand, I do need to exaggerate the bump noise beyond what’s possible with the range 0-1, but this faceting is also not acceptable.

If this is intended functioning of the Perlin Bump Noise block, what would instead be the preferred method for increasing the bump strengths generated without also resulting in visible facets?

(At this stage, I do not want to resort to subdivision, as while this does somewhat hide the effect, it does not cure the underlying problem with the normals).

This is the first missing image:

And the second:

Hi David, can you provide the full shader you build?
In general, at some strength there will be faceting because your generated normals will intersect with the real geometry. But your example seems excessive.

Iray does have a render option to reduce that effect its an option called “Shadow terminator offset” and setting it to true will limit the self intersection problem with bump maps.

Well, the shader I was hoping to build is going to be somewhat more complex, but the shader I’m using here has been extremely simplified to try to isolate and analyse the problem:

Daz’s DBM file for that shader is here: PerlinBumpNoise.dbm (62.6 KB), although I don’t know how useful that is to you.

The eventual intention is a shader that can mix mapped and procedural bumps so that areas like a character’s face can use carefully made bump maps, but areas of the model prone to texture stretching can have their bump maps procedurally generated.
(This kind of stretching is fairly common, as Daz’s base figures are designed to be morphed to create different characters, and usually retain the same UV mapping).

Sorry, I realise that screenshot got shrunk down to the point it was very difficult to read. Hopefully this is better:

I can see whats used. Under the hood its core_definitions::perlin_noise_bump_texture

in this case its indeed not an issue with the function but the aforementioned shadow terminator issue. Can you try the “Shadow terminator offset” option?

I’m not sure of where to find that option, and while some Daz Studio documentation mentions the feature, it doesn’t actually specify where it’s found.

Should I be expecting that to be a shader property, an object property, or a global render settings option? (If you’re not sure, I can try sending Daz a response to my earlier ticket, but I don’t normally expect to hear back from them quicker than a couple of days)

Its a global render setting

Unfortunately, Daz’s technical support have advised me that the “Shadow Terminator Offset” option is not available in Daz Studio. (I’m not entirely convinced, given the feature earns mention in old change logs, but I cannot actually find such an option to disprove that).

Is there any other possible solution to fix or reduce this issue?

The most basic reduction would be through increase of subdivisions.
In General the issue is stronger for “rougher” material contributions. Since you can have bumpmaps on individual bsdf, you can reserve the stronger bump maps for the “shinier” contributions of the material and not apply bump or weaker bump to diffuse bsdf of the material. (For skin this actually makes a lot of sense). You would need to modify the DzMdlIrayUberPBRMetallicityRoughness Material you are using or implement your own skin material for this.