Suspended Ceiling Light Panels

Hi all,
I wanted to start adding some basic materials and lights to my first Blender scene. I’ve watched a tutorial video on lighting which advised how to set up global lighting and this is what I have done:

  1. In World Properties Surface> I’ve set Color to Sky Texture.

  2. I’ve added a sun and set the position & time using the Sun Position addon, and set its size to 3°

  3. I’ve added 3 rectangular Area lights across the window bays and set these to Portal.

I then made a 1st test render and then turned down the render settings. Though sunlight is getting into the scene I need to add in light panels in the suspended ceiling grid. I’ve made 2 openings in my ceiling and placed an area light (Set to 30w) above each opening, pointing towards the floor. As you can see in the below test render, the lights on the floor (in front of the coloured panels) is not directly below the panel but seems to be following the direction of the sun (they aren’t set to portal) i.e. diagonally down and left.

My questions:

  1. Why isn’t the light shining directly downwards from those panels?
  2. Even though I have set Disable in Render for the Sun and the portaled area lights at the windows, I still get the sunlight showing up in the render. Why is that?
  3. Are Area lights the best way to replicate suspended ceiling light panels or is an Emissive Shader a better choice (I’ve not used those before). FWIW, the lighting I am trying to eventually replicate is something like below where you have natural daylight and light panels both contributing to the scene.

is there anything blocking the sun from getting in those openings?

The sky texture has a sun in it, disable the environment lighting and that will probably help

Depends on how many lights you want. if it’s just a few then use area lights, if there are dozens of them, I’d use an emissive material.

Hi @SterlingRoth

No nothing, just a clear opening in the ceiling mesh with the area light directly above it. The below image is a view from above and to the left is an opening with an area light, and to the right, I have placed a plane with an emissive shader. I’ve brought up the Area Light settings in case it helps.

Gotcha, I suspected it might have something to do with that but have no experience to back it up so thought it best to ask.

Possibly up to 100 in total throughout the entire model so it sounds like the emissive approach is what to go with.

1 Like

So this is why the sunlight is getting in there. Area lights don’t cast shadows. Refill that face and assign it a new material with an emission shader for your area light. This will both block out the sunlight and give you the overhead light you seek.

Apply that material to everywhere you want an overhead light and it should work well for you.

I tend to use area lights snapped to the center of light tiles and dropped 1mm. Area lights render with less noise. Optionally:

  1. Create light patterns in the ceiling grids that are visible only to camera.
  2. If you have sharp reflections, might also want to enable it for glossy rays.
  3. On very rare occasions will I model the light using actual emission geometry.
  4. For recessed light fixtures that will actually direct light, such as a vertical grid below emission tubes, I will separate the face in the ceiling grid and collapse all of them (by individual origin) to a single point and do a merge by distance. Allows me to have a snapping point for such light fixture assets.

Example of ceiling grid with “gridded tube lights” done as procedural texture and for the camera only, the real lighting was done by area lights. Would I to have lots of glass (see below), I’d have to rethink that strategy. Early in the project so no actual luminary picks, and could also fill the ceiling with other “junk” (texture based or procedurally created) to make it feel more “occupied”:

Example of actual emission geometry doing the lighting because they’re reflected in glass “everywhere” - kind of a nightmare to have to deal with. In this case a lighting engineer had already been involved with an RCP provided, so no artistic freedom:

Had to crop the renders for obvious reasons.

1 Like

Is this still true?

mesh emission:

area lights:

The noise pattern and amount is almost identical (128 spp each), but the area lights took 38% longer to render

edit - area lights scale even worse, performance wise. Here I quadrupled the amount of lights:

Mesh emission:

area lights:

a whopping 258% slower to use area lights

1 Like

A post was split to a new topic: Area lights vs mesh emssion

Well, you set sun position so it has direction?

Sun tunnels have in reality thickness, so if you have one meter thick roof, sun tunnel should be one meter thick and very high albedo, like 0.9 white. Then light should hit inside tunnel and bounces there until hit inside room.

Lamps are invisible so it is likely better to use emission shader to those. However, lamps got cleaner image faster than emission shader.

Also high number of lamps may cause slowdowns and you can’t render it on Eevee then if you need. If there is more than 128 light sources, you should try something else.

I keep trying to find a case where area lights are cleaner than emission shaders and I can’t do it. Maybe this is a cycles x improvement, but an emissive plane and an area light produce almost identical noise patterns, and the emissive planes are always faster.

1 Like

ok, I found one case - a single enormous mesh light will be slightly noisier and slightly slower than an equivalent area lamp.

I haven’t checked lately, but it sure used to :smiley:
Looks like I have to do some investigating for the next real project.

Thanks for all the replies, its really helpful to learn from

Yes, this makes sense, the light I was seeing was the sun passing through, not cast from the area lights above… Definitely a Doh! moment on my part.

Based on the previous advice, I’ve gone with a separate, linked-duplicate mesh for the lights with the emissive shader. Its just a flat plane that sits at the same height as the adjacent ‘tile’ mesh about 5mm above the suspended grid.


Even though I’ve only inserted a small amount of light-panel meshes, it certainly seems to be working but I clearly need to dial in the strength value. Do any of you know if there is a formula to determine what strength value should be used to replicate an equivalent Watts value? I used 30 in the above image but its too high from what I can tell.

@CarlG I like your images, especially the 2nd one, it has a really nice up-market restaurant/Hotel feel about it. It also looks like a much higher-quality ceiling tile than I suspect would be used in this Hospital (health reasons mainly). Being new to Blender, I’m not sure I follow all of your bullet-point suggestions, except No.4. Do you do this just for the initial placement of your light assets? I didn’t do that for the emissive panels I’ve used so far, as my background is architecture with CAD, I make extensive use of snapping and positioning the meshes was straightforward. I hadn’t thought of making the light panels an asset, is there a benefit to that over a mesh with an emissive shader residing in this file?

One thing I’m now wondering, in reality, these light panels have an opaque screen and the LED positioned above. Do you guys think its worth replicating that or is it something that won’t give any benefit as its unlikely to be seen unless the emissive panel strength was turned down to essentially make the lights appear turned off?

You could try the extralights addon, which gives you control in Lumen, and handle color conversion. Watt is an insane value for us as we confuse it with watt drawn. 18W LED is way different from a 18W fluorescent tube and a 18W incandescent light. To me, as I only work with relatively white lights (2700K-5000K) rather than strong colored ones, the latter don’t really matter to me - that’s not what breaks or makes anything.

If possible, go to site and photograph the space exposing for the outdoor background on a clear day with the lights turned off. Keeping the same exposure, turn on the lights and take another shot. In Blender, match the sky conditions alone using Nishita sky (don’t forget to add a ground bouncer if ceiling turns out too dark) and find the correct exposure. Keeping the same exposure, turn on your Blender interior lights and adjust their strength to match lighting provided in the photo. Now you have a reusable asset that you shouldn’t have to tweak strength for, and it will be good enough for rendering purposes. Ideally you’d wait for night and shoot interior lights only while keeping same exposure, but probably usually impossible. Also remember to setup your diffuse bouncers close’ish to reality, you don’t want to photograph a dark concrete construction site and replicate it using fully white surfaces.

As for translucency, no - absolutely stay away from relying on translucent transmission for lights. It’s better to observe what the translucent effects adds up to, and try to mimic that by tweaking the strength directly. Only if the translucent effect is dynamic or over a large surface area, such as frosted glass walls, would I consider using translucency effect. I’ll even fake my lamp shades.


One thing to be aware of is antialiasing issues on bright emission geometry. If you end up with significant visual stepping, say diagonal lines on the ceiling tile light appearing much sharper than they should because the strength has to be set ridiculously high, make separate strengths for camera rays and the rest. To compensate for “lack of glow”, use cryptomatte to multiply the material in post to bring it back up again or otherwise give it a special treat (I’ll often use stars for tiny spots).

One organizational feature I do on large projects containing many lights in various locations, is to let all the emission shaders (both for geometry and lamps) go through one or various (depends) “lamp passthrough” node groups with no control. This is then placed in world for easy access to light controls without having to search for where the lights are located. Simply disconnect the internal input->output noodle to turn off the lights:


Maybe I’d do it differently now with light groups.

2 Likes

I’m only about 2 weeks (at most) at trying to learn Blender and feel a bit like a toddler learning how to walk. I’m sure you can appreciate a lot of what you have advised is way above my current level of understanding at the moment, but its something I’ll definitely refer back to once I get more comfortable with the program.

Unfortunately that’s not going to be possible as it’s pretty much at the opposite end of the UK from me. I have been once and photographed the existing space with an iPhone, but that was purely to provide a visual reference to a ceiling survey I had been undertaking. The blender model is something isn’t a deliverable but something I wanted to do; a) as perfect project to learn how to properly mesh-model, and b) to help colleagues and client better understand design intent that my standard CAD drawings doesn’t provide.

That does look good. Forgive the noobie question, but presuming the image of tile light-fittings are individual image files, how do you apply one of those to a mesh and still have the emissive shader emit light?

That’s exactly my position too; using Solidworks to do the optical/mechanical stuff, export and provide autocad drawings, which I then (party geometry) import to Blender as visual guides for asset placement or snapping points to construct up the basic space. Decent renderings really help sell the project, according to sales department.

The HVAC/fitting stuff is image based, whereas I think all my lighting assets (at this planning stage, they may get replaced with real geometry later) are just created procedurally - just a stupid obsession of mine which I’m going way too far with. It’s a single tile inset slightly for the dropdown grid, place it in some corner of the space, adjust the arrays to fill the space, apply the arrays, then just a matter of assigning “tile type” from the materials. Just a screenshot of the setup:


Here the emission is procedurally controlled, but it would be the same idea using an image. The “Ceiling.Tile.Spacers” rim is 5mm, so adds a total of 10mm around the tile, making the tile 600mm big. There are tons of really old junk in there that I’d do differently now, so not something I’m willing to share at this point.

2 Likes

I always wanted to try Solidworks having seen it quite often on TV, but its obviously not only suited for Architecture so its unlikely I’ll ever use it.

That image is probably one of the most confusing I’ve encountered so far and tbh, I can’t actually work WHAT it all does, and I certainly have no idea how you go from my current position, having only just learned to applying an emission shader on a single plane, to being able to understand whatever it is you are doing and construct those custom nodes. No doubts years of experience is involved so I’ve got a long journey ahead :joy:

Well, that’s how it all started, so :wink: Just made a video where I test different tiles under different lighting styles, just blending between different images:

The idea was to clean up a lot of old garbage nodes that are no longer needed as they have builtin equivalents. I love light groups, except I have to manual match a sun lamp with whatever Nishita sky with sun provides and turn off its sun; allows me to turn off the sun in post. I wish world light groups had more control.

1 Like

Just tested:


Area lamps looks much more consistent in noise levels when area changes. Here I’m adjusting brightness up (1/area) so that the delivered output is concentrated in a smaller area resulting in same illumination level of the space.

So maybe it doesn’t matter much if you have large ceiling tiles with full tile lights in them, but it sure matters when you want a smaller light or mimic a smaller translucent surface. Guess the result is “you need to try it out on a case by case matter to get a feel for what to use”.

Very nice, quite a noticeable difference between the different lighting conditions.

I like those geonodes to compensate for light amount :+1: