Control specular contribution per light on a material

is there a pathway where we can have access to the each light and thereby control the contribution of a specific light on a material (eg specular…etc)
i know you can scale the specular amount on the material but this scales the overall specular contribution from every light.

in our old renderer we could so something like
material.light0.specular = 0.5 which would scale the contribution of light0 or light(number) and so on… so trying to see if we can mimic this behavior in BJS.

I realize the “workaround” to this is to use light inclusion/exclusion but wondering if there is some pathway inside PBRMaterial itself.

The material plugins or NME might suit your needs, where you can modify lighting of material:

As @Takemura mentioned, there are no direct setup within the material. Inclusion/Exclusion is probably the easiest.

1 Like

I think you can scale down the specular color specularColor (which is (1,1,1) by default). This is for the standard material.

For the PBR material, you have reflectivityColor if you are using the specular/glossiness model. You also have specularIntensity, which applies to both metallic/roughness and specular/glossiness.

@Evgeni_Popov thanks. i guess what im asking is if there is a way to scale contribution per light, not globally. Im going to start digging deeper into the inner workings of the pbr shader to see exactly where the light calculations are accumulated and then work up from there. I feel a material plugin coming on.

1 Like

Really? I wasn’t aware of that. That would sure be a “nice to have” (or have back).
As far as I know, you can change specular on the light (globally) and you can change specular (or in case of PBR the catch of specular) but then, not per light (except for excluding it).