Landscape + Dynamic/Stationary Lights HUGE FPS drop


Got a problem with my VGA and so, needed to “downgrade” the system from a GTX460 to a GTS250.

While I do plan in restore the system specs (maybe a GTX750…) This led me to discover that some of my maps are “heavy” to render, nothing related to triangle/vertex count, but within lights.

Reading the docs I’ve seen the tips about Stationary, but this is not the case. A test map where the soil is composed from just one BSP Block presents minimal Framerate drop (60 to 48 or so) with the same number of dynamic/stationary lights, but on another level where I’m using landscape the framerate drop leds to the game becoming barely playable (19- FPS), if I do delete all the objects that holds the lights (dynamic, stationary/whatever) I get back to 60 FPS.

I would blame shader model restrictions (GTS250 - SM4, GTX460 - SM5), but this would “theoretically” influence both lights on BSP and Landscape geometry, I didn’t use any DX11 advanced feature so I think that this is not the case either.

I don’t know whats happening, my only “bet” is that each light is being calculated to the “whole” landscape geometry (and because this I choosed to discuss this on the Content Creation area) and maybe I’m not working right with lights. Maybe something I’ve missed…

Any tips would be amazing.

Thank you!

I had an issue like this.
In my case it was static shadow maps that cause it for me. I did not want to go and look which objects were causing it so i disabled static lighting in my level completely and made sure no traces were left of any shadow maps generated previously.
And only use full dynamic lighting. My FPS went from 15fps to 80fps.

Hi Creasso,

With your stationary lighting are you making sure that you’re building lighting for you scene? With Dynamic lighting there is no need for lightmaps to be built, but with Stationary lightmaps will be built for each object which should improve your FPS performance.

For larger worlds static lighting isn’t really used, unless it’s in specific situations, like interiors or smaller levels that may be loaded in. Large Landscapes with many thousands of assets can be very performance heavy and having the overhead of loading lightmap textures for those objects can add up quickly. Using fully Dynamic lighting, make use of LODs for your assets, and profiling your game often can help track down where bottle necks are happening with performance.

Hi Tim.

Here is a “preview” test I did…


As I said, this is just happening after “VGA downgrade”, about LODs, well, my assets are a “joke” on polycount. It’s a 3rd person Isocam game, so if the engine does some frustrum culling should be few to render, I just thought about this profile now because my new system specs. On a small research done into a fanpage from my game “most” users has VGAs far better than mine.

This idea about full dynamic light (specially because Cascade Shadow rocks) is a nice approach to try, thanks, I’ll work on this optimization and after tell if I get a boost.

I’ll experience a lot of troubles by what I’ve seen (meaning on level design, not the engine itself) too much “night” settings, torches, campfires and candles everywhere! :smiley:

Ow… And yes, I’m building the lights.

Tim, thank you.

The GPU profiler told me that shadowcasters were killing my framerate…

  • Reduced the number of cascades to just 1 and turned off the StaticShadowing from my Directional.
  • Turned off the shadowcasting from my torchlights (few visual lost).
  • Reduced the radius from the lights that would still cast dynamic shadows, the foundry light and firecamps still need them, but with a smaller radius it’s just a 2-4 FPS drop, acceptable I think…

On the further works I’ll be more cautious about shadowcasters, thank you.

(Sorry for bumping, but I have a similar problem) So when having an open landscape (woods, etc.), is it better to setup fully dynamic lighting? It would make sense for my problem:
I have a lot of trees in my scene, only ONE Directional Light (no other shadow casters) and there is something strange:
Baked Static Lighting = 100+ FPS, Movable lighting = 70+ FPS, Baked Stationary Lighting = 22 FPS :o

My trees are animated, so they’re not marked as static. So I don’t understand why baking Stationary Light makes any difference, when there are no new lightmaps after baking.