Lighting on PBRMaterial


I am trying to add SpotLight in the scene, and what I noticed is that it shows on the StandardMaterial but doesn’t show on PBRMaterial affected with environmentTexture (hdr map). Is it suppose to be that way, or I am missing something here.

This is because the lights are treated differently by the PBR material.
By default, light intensities are computed using the inverse squared distance from the source. This is a type of falloff that is pretty close from what light does in real life. So, the further you are, the bigger your intensity will need to be to reach a surface.

To even go further, the intensity you define on the lights follows physics notions:

  • Point and Spot lights are defined in luminous intensity (candela, m/sr)
  • Directional and Hemispheric lights in illuminance (nit, cd/m2)

The StandardMaterial does not take all of that in account.

To have the PBR to behave like StandardMaterial you can call

pbr.usePhysicalLightFalloff = false;
1 Like

Yes that makes sense. I even found "usePhysicalLightFalloff " in documentation, tried to check off in the babylon inspector, but somehow I didn’t get proper result.

Thank you so much for fast answer, that’s what I needed.

1 Like