PBR Specular slider with Metal

I never new that for metal material you can / should still use the Specular slider for creating the Fresnel rim effect.

Screen Shot 2020-05-03 at 8.55.50 AM

Min 8:04

You can use it as a quick hack for low saturated metals, but it has some strange side effects.
I would recommend ramp or rgb curves.

Edit: Nevermind, just tested. It’s sheen that is still broken (used with global AO).

Sorry what? I don’t understand. Sheen isn’t part of a metal shader ?

It was a correction to my statement. Correct, sheen has nothing to do with, or does nothing for, metals. But sheen is still broken with global AO. So if you ever consider using sheen for cloth or other dielectrics, consider making a fuzz shader setup instead. Here a comparison, some custom Fuzz shader (using Velvet inside) and Principled with sheen, with AO in the preview, and without AO in the rendered image below:

I believe sheen is essentially a diffuse effect-- basically, like what happens if you mix a (typically monochrome) diffuse on the basis of Fresnel on top of your basic shader. Not sure that’s exactly right but they sure look a lot alike. As diffuse, it would make sense that it’s not really a metal effect-- any metallic material somebody might describe as having sheen, should probably be a high roughness glossy instead. But if you want it on metal, you can try the diffuse mix. (Also, a useful trick for differently tinted sheen, anisotropic sheen, other stuff like that.)

Sheen, while angle dependent, doesn’t use half angle (like velvet or glossy), so yes, I would very much consider it diffuse (absorption term). But it is angle dependent in that it adds only to forward scattering (back lit) - nothing will be added for back scattering (front lit). Also, sheen is reduced with metallicness.
Cycles Velvet confuses me still. I consider it a result of “absorption” rather than specular, even though it uses half angle. A light source is half angle reflected as darkness (giving the impression the edges are brighter in combination with a diffuse), but unlike sheen, it doesn’t care about front scatter or back scatter.
Anyone have any info about how Velvet (dense cones) is supposed to be used correctly and the theory behind it? Should it be factor mixed or fresnel mixed?
And how would you obtain difference in back and front scattering of absorption term with standard shaders? Messing around with O-N/Velvet and high roughness tinted specular, but not the same.

Yeah, it’s pretty clearly akin to diffuse (color is appropriate, wide angle). It’s view dependent, but I think of that as trying to simulate occlusion from micro-geometry, which is much different than the view dependence of a glossy.

As such, what are you going to do with it other than mix it into your diffuse term? (Maybe fully.) And since there aren’t any specular shaders that are going to represent the same micro, and you’re likely to have little specular response from velvet materials anyways, that leaves it pretty stand-alone in my opinion… Maybe mix some sheen on top is all you could do.

Might be interesting to experiment with using the output to modulate specular somehow-- darken, yes, but also bend the normal-- and see if that could be used to make a decent velvet+specular. If it worked in Eevee, where you can shader->RGB, it would be fun to do some tests. But I’m too lazy to simulate specular in compositing…

For regular (cotton’ish) fabric edge stuff, I just mix in a tiny fraction of Velvet - just to create some sheen on the edge. I don’t care about glossy term at all. Using high bump on diffuse is now more forgivable, but not on anything else - so screw the “everything has fresnel” rule :smiley:

I’ve used specular->shader2RGB in eevee to sorta kinda simulate velvet shader after some color manipulation, but it’s not good and probably not worth the effort. I’m a Cycles only guy anyway.

There is little modulation to be done. I tried stretching the normal along UV tangent, but it only led to terminator hell. Maybe I should have gone further, but I was fed up and just went screw it.

I think Velvet needs controls for scatter direction related to lightsource for backscatter/forwardscatter bias, as well as shift along some input direction - anisotropy (180 degree, not 90 degree like glossy).

Have you tried Velvet for Luxcore? I barely touched it, Lux is a bit too unstable for me, but I can’t make heads or tails of the three controls the little I tried it. The documentation was also hilarious :smiley:

All I’ve ever rendered in is Blender and game engines, and I’m currently at a point where I’m probably more interested in Workbench renders than in Cycles renders :slight_smile: Other engines are something I can keep in mind for when I run out of other things to learn, but it’s hard for me to imagine that happening any time soon.

There are a lot of papers about velvet. I don’t know how to really read all of them-- like, even if I knew some OSL, which I don’t, can I actually get the half vector in Cycles? I dunno, does it even work that way? But yeah, people work on things like velvet anisotropy, and their code isn’t too hard to find…

Such papers are mostly for Cycles developers. While we can read them because we’re interested and help come up with half assed workarounds or push for implementation, we usually can’t make proper works on them because of the way closures work - no scene/light info for us, lol.
We can do half angle stuff, but only from a set point, not from actual lights. It’s easy do to a phong shader with nodes, but only based on a point in the shader definition (or texture coord/object reference).
I guess you can do more stuff within OSL, but I’m not really into that.