If you want a deeper understanding of lighting, it helps to study the fundamentals of real-time rendering rather than only Three.js specific tutorials. Three.js mostly implements standard graphics techniques that come from computer graphics research and game engines.
A very good place to start is the book “Real-Time Rendering” by Tomas Akenine-Moller, Eric Haines, and Naty Hoffman. It explains how lights work in modern rendering pipelines, including shading models, shadowing, and global illumination concepts.
Another great resource is the website “LearnOpenGL”. Even though it uses OpenGL, it explains lighting models very clearly such as Phong, Blinn-Phong, physically based rendering, normal mapping, and shadow mapping. All of these concepts translate directly to Three.js.
For shader-level understanding, the book “The Book of Shaders” is excellent. It teaches how light interaction is computed mathematically in fragment shaders.
For more advanced and modern approaches like volumetric lighting, atmospheric scattering, and physically based rendering, you can also look at resources from game engine documentation like Unreal Engine or Unity graphics docs. They often explain the theory behind the techniques, not just the implementation.
In general I would recommend learning these topics:
lighting models (Lambert, Phong, Blinn-Phong, PBR)
shadow mapping
BRDF and physically based rendering
volumetric lighting and raymarching
global illumination concepts
Once you understand these fundamentals, the lighting systems in Three.js become much easier to understand because they are implementations of the same underlying graphics principles.