@theluthier In the node setup for the puddles the "Specular" socket input of the "Principled BSDF" node doesn't seem to have any effect on the shading:
1) With Connected "Specular" Socket
2) With Unconnected "Specular" Socket
My explanation:
1) The "Math Node" in the red frame which is set to "Multiply" has grey as first color which has the same value for R=G=B= 0.2 als the unconnected "Specular" socket of the "Principled BSDF" node. The second color of the mentioned "Math Node" is pure white (R=G=B= 1).
2) The "Math Node" in "Multiply" mode calculates its output like this:
(with "color1" being the top socket and "color2" being the bottom socket; the following calculation has to be done for R, G and B of color1 and color2 separately; for the sake of simplicity, I didn't use any indices for these three base colors since they have the same values for pure white (1) and any tone of grey (0 < grey value < 1))
output = color1 * ((1-fac) + (fac*color2))
So, if fac is 0 (=black = no puddle) we get 0.2 as "Specular" value which is the same value as the unconnected "Specular" input socket of the "Principled BSDF" node.
If fac is 1 (=white = 100% puddle), color2 (R=G=B= 1) is multiplied with color1 so that the new values for R=G=B is 0.2 * 1 = 0.2. Nothing change again compared with the unconnected "Specular" input socket of the "Principled BSDF" node.
Let's finally take a value in between like for example fac = 0.5:
output = color1 * ((1-0.5) + (0.5 * color2))
= color1 * (0.5 + 0.5 * color2)
With R=G=B= 0.2 for color1 and R=G=B= 1 for color2, we get:
output = 0.2 * (0.5 + 0.5 *1)
= 0.2 * 1
= 0.2
So, in all three cases above, the connected "Specular" input socket of the "Principled BSDF" node has the same value as the unconnected socket.
I think, the "Puddle Effect" comes only from the three other inputs:
1) A darker tone of grey for the "Base Color"
2) A "Roughness" value of 0 (= black)
3) A "Bump" value 0 (= black)
But the "Specularity" isn't raised at all.
duerer you are absolutely correct, albeit taking the long way in your explanation ;)
The short version:
multiplying anything by 1, doesn't change anything, no matter what the factor is.
In your calculation: color2 is 1, so: (fac*color2) is just fac and (1-fac) +fac is simply 1.
So you can save yourself a Node :)
Thanks, spikeyxxx 😀! And, of course, I knew that you would understand it with a shorter explanation, but I also think at people that aren't as familiar with how Blender works in detail as you are 😉!