Lighting in a Room


This is more of a theoretical question. I’m not a three.js expert yet, so forgive me if I make any stupid assumptions.

I have a three.js scene with a room with a closet in it. Under the ceiling there is a light, for that I have chosen a PointLight.
The renderer settings are adjusted for photorealism.

Because I have the Pointlight only 10CM under the ceiling, a strong light cone is formed on the ceiling.
The ceiling has a high roughness and should not reflect much.

My consideration now: A pointlight shines in 6 directions, as far as I understood it, including directly upwards (direction vector 0,1,0).

In general I know that there are many more possibilities to bring light into a scene, but I am (because a photorealistic rendering with a blender via GLTF runs behind it) dependent on PointLights, DirectionalLights or SpotLights.

So my idea was to create a kind of ceiling light (based on a certain number of DirectionLights - e.g. 5) that doesn’t radiate so much upwards.

Is this a good idea, or what is the best way to approach such a problem?

Probably not. You should avoid adding so many lights to the scene, since they are expensive to render.

1 Like

Did you consider baking lighting?

1 Like

is there any guidance on how many are more or less ok without being too specific about platforms? i have 3-6 on almost always.

I didn’t mean specifically you should not have 5 lights. But rather, wasting your entire light budget by putting five directional lights where a single point light can work is a bad idea. You can probably use those lights to better effect.

EDIT: although, I’m curious. What hardware do you test your scenes on? I have a cheap Moto G6, partially cos I have a habit of breaking/losing phones, but also because it’s a good mid-low range device for testing with. I think 6 lights with any kind of complex animated scene would be really pushing it.


I once read in pale memory that a PointLight under the hood is nothing else than 6 DirectionalLights.
So I thought that a “self-invented” lamp with 5 instead of 6 DirectionLights would be even more performant for the renderer.
I would have to test that.

I’m not familiar with “light-baking” yet, but it’s a very dynamic three.js scene that changes a lot with user input, so I guess this approach would be difficult.

Thanks for your answers!