This is not a correct assumption for a physically-based lighting model, and in general there is no guarantee that reflected light will have the same RGB values as incoming light. Results will also depend on choices like material parameters, rendering color space, tone mapping, exposure… I’m not sure what decisions you’ve made there, or whether you’re using a framework like R3F or Threlte that has additional defaults.
There were important changes in r155, described in —
You might find the answers you’re looking for there, and in particular…
- Light intensities are not internally scaled by factor
PI
anymore. This so called artist-friendly light intensity scaling factor was in place to make it easier to achieve good looking lighting with intensities around1
. However, in context of physically correct lighting such scaling factors are incorrect and make it impossible to use proper SI units.
… try applying a factor of Math.PI to your intensities?
For absolute control of RGB values coming from your surface, you may prefer to use a custom shader or MatCap material.