I don’t quite understand the logic of the specular and specular tint values in the BSDF shader and I hope someone here can enlighten me. My understanding is that “specular” changes the strength of the specularity of a Material. So the “Specular Tint” should contain the color of this specularity, right? Why then is there only one channel, instead of an RGB input?
Color is coming from base input, spec tint just controls blending. From manual:
Tints the facing specular reflection using the base color, while glancing reflection remains white.
Normal dielectrics have colorless reflection, so this parameter is not technically physically correct and is provided for faking the appearance of materials with complex surface structure.
Oh ok. So let’s say I have a red Base material. If I set tint to 0 and crank up specularity, I get a white “hotspot” on the material. The more I move the tint to 1, the more the specularity will be “tinted” red. Is that correct?
Yeah, kind of saturating effect.
What I am trying to do is to setup the BSDF shader in a way that it mimics the behavior of the Microsoft Flight Simulator X shader. For FSX, the specular texture defines the color of the specularity - usually controlled by the Alpha channel of either the spec map or the diffuse map.
With the specularity being as it is in the BSDF shader, what do you think would be a way to best mimic that look? Maybe use the spec map to control the subsurface color?
Honestly, I think it’s better to mix shader diffuse and glossy with different colors rather than dance around principled parameters.
I’m sorry, I don’t think I understand what you mean. Could you please clarify that for me?
Oh I see what you mean. Thank you for the clarification!
There’s a variety of reasons I’d like to stick with the BSDF shader. The background of all of this is that I am currently re-writing a toolkit that exports models from Blender to p3d/fsx (info here). I would want the shader to be as basic as possible so that users of the addon are able to easily export their model without setting up their own shader first.
Another issue is that I need to support two types of Materials, one is of the specular nature, the other one is more pbr and uses metallic/smoothness.
Since the BSDF shader has both of these options, I’d like to utilize the slots of that shader as much as I can.
If you want to be rendering elsewhere, you need to be thinking about your materials in terms that can be understood by where you’re rendering. What Blender does with materials is pretty much irrelevant when it comes to rendering elsewhere.
The metallic model is the Principled BSDF. If an engine uses a specular map, it is probably not using the metallic model. (“Specular” input for metalness can more precisely be considered to be remapped IOR/.Fresnel, not a traditional specular map.) In this shading model, only materials with metalness receive colored specular, and it is determined by their albedo color. The specular model is the Specular BSDF, which allows inputting a particular specular map. In 2…82, the specular BSDF is not supported in Cycles, only in Eevee (not sure why, my memory of 2.8 was that it worked fine in Cycles even though it wouldn’t let you put it in unless in Eevee.)
Yes, I’m aware of that. But since I have no influence over the shader for my target platform, I’d like to adjust Blender’s shader to mimic my target’s shader as best as possible.
The last incarnation of FSX, Lockheed Martin’s Prepar3D v4 is indeed using two types of shaders - one is the old specular model, the new one is a pbr shader with slots for “metallic”, “smoothness” and “occlusion” maps.
I think Cycles support is not necessary in my case, since the final rendering is done in a different software anyway.
So one option would be to use the “Specular” for the specular type and stick with BSDF for the PBR type materials. The downside to this approach would be that I expect the users of the exporter to switch their materials accordingly.
That sounds like a metallic workflow, except with 1-roughness used as “smoothness”. Metallic workflow doesn’t support colored specular, and is part of the reason “you can’t make mistakes with it”. Specular tint has nothing to do with that. Don’t use it unless you have good reason too, for Cycles use - but not for game engine use. Specular (almost) always reflect white, but there are times where you want to simulate some interreflection stuff where it picks up the base color before bouncing off. This can only happen at facing angles, not at grazing angles, and this is what specular tint tries to simulate. It shouldn’t be used in your everyday common material.
For Flight Simulator X there is no PBR material and so users developed very different techniques over the years to achieve a metal look. One of the techniques is to make the spec map slightly blueish. My problem is that I have to cater to both PBR and specular material, while at the same time trying to keep the workflow similar and simple. Essentially I am just using whatever Blender shader to collect the information which texture to use and plug that info into my exporter. So, I could just use ANY of the shader nodes and tell my users which ones to use for which map.
That being said, my goal is to have the 3d model look at least similar in Blender as it would in the simulator and so I’m pondering how to utilize Blender’s shader graph to achieve that. I want to be as much plug-and-play as I can though, which is why I’d prefer to stick with just one - the BSDF Principled Shader.