Download

lighting choice for boat cabin

Hi,

I am lighting a boat cabin, the boat is floating in the waves and moving around, however i do not care for dynamic shadows as performance is more important, i’d like the scene to be lit as a static interior, i really like the look and performance of static lights but the static and stationary lights can’t seem to be child of a moving object, i can attach the stationary lights but i get a “lighting needs to be rebuilt” during gameplay

What are my options for this kind of set up?

Thanks!

This should work:

  • Turn on “light as if static” on the dynamic boat mesh.
  • Place your static lighting inside the initial location of the boat, but do not attach them to the boat.
  • Build the lighting.

If you try to move the lights the lighting solution will have to be rebuild, but as you just leave them in their original location this won’t happen. However, because the boat itself is statically lit it will keep the lighting from it’s initial location and won’t be updated after you move it around.

You could also consider splitting up the exterior and interior of the boat into two separate but attached meshes. This way you can statically light the interior while still dynamically lighting the exterior.

Fantastic

Will give this a try!

It works but when i press play i get the “lighting needs to be rebuilt” warning, it starts with 1 then slowly goes up to multiple unbuilt objects

The lighting seems fine tho

Then you are probably using stationary lights. These use static shadow maps, but dynamic highlights, so they won’t work well with this trick. Only static lights are fully baked.

All the lights in my scene are static, sun and skylight also

All the lights in my scene are static, sun and skylight also

It works if i toggle the visibility of the lights to off after the build, the warning goes away

Another issue i’m having with the lights not following the boat, the reflections from the static lights on the walls seem to stay behind with the lights, it seems that shadows and highlights are fully baked but reflections are a problem

What if you use emissive materials instead of light sources? You wont get indirect bounces but it will be cheaper anyway. I dont know if that light as if static trick will work this way though, since the emissive mesh needs to be static itself.

I tried that already and still use some emissive as fill lights, but the emissive lighting doesn’t look good enough by itself to replace my point lights

I think the reflection problem is obviously because the reflection capture actors are not following the boat and they can’t seem to be made movable and a child of my boat mesh

How about this:

Create the best lighting possible for the interior and build the lights.
Put a scene capture actor inside and then create a static cubemap of the interior.
Use that cubemap as the ambient cubemap of a post process volume that covers the interior, and turn the most important light sources into Movable, and get rid of the rest.

Interesting Jacky,

I gave it a try, it helps bring some of that ambient light back but the static lights bake still looks much better than the movable + ambient cubemap combo, i’m really after that soft shadows + GI look

Well i knew it wouldnt be as good, but considering the fact that you wont be able to get that static GI looks it was worth a try. :stuck_out_tongue_winking_eye:

How much of a performance impact do you get with dynamic lights only?

Quite a bit even with shadows set to sg.ShadowsQuality 1, i need a minimum of ~120 FPS on my setup, this is for VR

I can pull off the static look with Arnage’s solution but the issue is with the reflections

There should be a better solution to light moving environments when both the mesh and the lights are moving together

By the way thanks for the help this is really appreciated

There is something i don’t understand

I baked the static lights, when i hit play and my boat starts moving the reflections stays where the reflection capture actor is and slowly disappear from my mesh as i move away outside the capture zone, but somehow my windows are still reflecting properly like the reflection from the static lights were baked?

Here is an example, you will see the white reflections from the emissive light pannels on the walls disappear as my boat moves up in the waves but the windows are still reflecting them properly

Here is a screenshot of the reflections only so you can get a better reference to what is shown in the above gif

I did some testing and my windows are reacting differently because they use a translucent material, if i set them to opaque the reflections moves

Is it possible to have opaque materials behave the same way with reflections than translucent materials?

Opaque materials interpolate between multiple reflection actors (and can use screen space reflections on top of that) while translucent materials are locked to a single reflection capture. Normally the opaque solution is better, but in your case it kind of falls apart.

You could try handling the reflections in the interior by disabling the build in ones and manually adding them with a with a custom cubemap.

So far i have only used generated cubemaps with the postprocess “ambient cubemap” feature, is this what you are referring to?

That works, but you can also plug the cubemap into the emissive slot for total control. The disadvantage is that you have to manually do everything unreal normally does for you, like the Fresnel falloff and roughness based blurring.