Having issues with Perlin Bump
I'm building a custom shader using the Perlin Noise Bump texture block (specifically, this is the "MDL/Procedural Textures/Perlin Noise Bump Texture" block, not the identically named (but different) "MDL/Default Modules/base/Perlin Noise Bump Texture" block). Hosever, when the bump strength is turned up above 1.0, the faces of the geometry start to become apparent:
This is a particularly exaggerated example (Bump Strength 100)...
... but it also happens at lower values (Bump Strength 5)...
... particularly if finer tiling is used:
This is not related to having geometry smoothing turned off (in fact, turning off geometry smoothing dramatically improves the result at higher strengths).
I have a use case that requires a stronger effect than a strength of 1 provides, but where this faceting is not acceptable. Is there a solution to this problem?
Comments
When you say "Geometry Smoothing", are you referring to the "Smooth" option at the bottom of the Uber shader? Because that's generally how you fix flat shaded faces.
Another option would be to add a SubD modifier.
I am referring to this, but having it on does not resolve the problem. The Perlin Bump is generating normals that, when turned up higher, seem to ignore (or invert, or overcompensate for - I'm not sure which) the effect.
I don't want to resort to that, as it doesn't resolve the underlying problem with the shader generating bad normals, and it would require unreasonably high subdivisions on certain objects (this is just a very basic primitive being used for testing). The normals should be able to look smooth without relying on SubD.
How does the same settings look on a Genesis model with 3 levels of Sub-D
Bump and smoothing both work on the normals (as do normal maps, of course) - I wonder if having the value over 1 (100%) is swamping the effects of the smoothing, depending on the order in which they are applied. It may be worth a ticket for this.
I'm not happy with using high SubD to disguise the problem. I want to fix the cause, not hide the symptoms.
For comparison, this is the same model at Perlin Bump Strength 1, and with bump off entirely. Although there's some slight issues around the edge of the strong lighting (Iray has often has difficulty around the edge of a low density object when high contrast lighting is involved), the face interpolation means that the edges of most faces aren't visible.
This to me illustrates that it is specifically a problem with the Perlin Bump portion of the shader I've built, so I don't want to resort to computationally expensive methods like using high SubD. I want to work out how to feed the shader good normals to start with.
That's one of the theories I had regarding why it was going wrong.
I was hoping there was a known fix and I was just being a muppet, but I'll put in a ticket if needed...
Hi!
Did you get this solved? It's the dreaded "shadow terminator artifact", not just an iRay thing. I have been battling it for years.
-P-
@Protozoon: No, unfortunately, not. Nvidia support advised me to try the Shadow Terminator Offset option, but I was unable to find it in Daz Studio (despite some mentions of it in old changelogs) and Daz Support informed me that it's not available. At that point, Nvidia informed me that the only real option to mitigate it some what was to use higher SubDivision levels.
I have been experimenting with some shader blocks that try to manipulate the normals to make it less noticeable, but that's still very much a work in progress that I'm not sure is going to be a success.