-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: dual specular roughness sliders with mix #210
Comments
Do you mean there should be two separate specular lobes with independent roughness, with a mix weight (called "dual-specular" sometimes)? If so that's being considered, but it would be for a later release as it alters the BSDF implementation somewhat. Also, what about the anisotropy -- would that be separate or coupled? |
Yes, that is what I was referring to. I was actually imagining a simple linear interpolation mix between two roughness values modulated by a mask that remaps black and white in the mask to the two roughness values, rather than an additional specular lobe. What would be the advantage of having a second specular lobe that changes the BSDF, as opposed to a simple mix for the roughness values within one specular lobe? How would this be differentiated from the coat? In terms of GUI, one possibility is for it to work similarly to metalness so that the mix defaults to 0 meaning only roughness1 affects the material with roughness2 greyed out until the mix is raised above 0. Regarding the anisotropy, my thinking is that the artistic purpose is to have subtle variation in the roughness, so I would expect the anisotropy to be coupled. If I wanted to get variation in the anisotropy I would use a tangent map. |
I understand some models have started exploring this possibility; I think this is available in UE5 for example. |
I think it would be worth prototyping this and doing some renders, to get a sense of how significant the visual difference is. |
Ah I see, you meant simply interpolating two roughnesses with a mix weight? I think that would be handled via a node graph most likely, it doesn't really make sense in the shading model itself.
The coat has an independent NDF, but it also sits on top so generates layering effects (e.g. Fresnel obscures the substrate at grazing). Whereas a dual-lobe specular on the substrate gives a coat-like control over the highlight, without those layering effects. Apparently it can be useful. |
Yes the dual lobe spec does sound potentially useful.
I agree that the simple mix would be better handled in a node graph.
…On Tue, Jan 7, 2025 at 7:54 PM Jamie Portsmouth ***@***.***> wrote:
I was actually imagining a simple linear interpolation mix between two
roughness values modulated by a mask that remaps black and white in the
mask to the two roughness values, rather than an additional specular lobe.
Ah I see, you meant simply interpolating two roughnesses with a mix
weight? I think that would be handled via a node graph most likely, it
doesn't really make sense in the shading model itself.
What would be the advantage of having a second specular lobe that changes
the BSDF, as opposed to a simple mix for the roughness values within one
specular lobe? How would this be differentiated from the coat?
The coat has an independent NDF, but it also sits on top so generates
layering effects (e.g. Fresnel obscures the substrate at grazing). Whereas
a dual-lobe specular on the substrate gives a coat-like control over the
highlight, without those layering effects. Allegedly it can be useful.
—
Reply to this email directly, view it on GitHub
<#210 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AFPXWDOGHRLG4AZCDFK2R5L2JQIGLAVCNFSM6AAAAABIQDEG2CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNZVHEYDKNZUG4>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Throwing out for discussion the idea of having two specular roughness sliders mixed by a lerp (typically using a mask texture for the mix), similar to Megascans materials in Unreal.
This can of course be achieved for instance with a ND_mix_float in materialX, but it could be nice to have it built into the material since it is so commonly used by lookdev artists. Thought I'd bring it up for possible consideration.
The text was updated successfully, but these errors were encountered: