Forward shading makes my closed off interior super bright

Hi there.

I’ve been playing around with optimising UE5 as I’m only rocking 3G of VRAM until I upgrade. A performance recommendation I’ve found was to turn on Forward shading in the render settings. At first glance, I can see no visible changes in quality, but I have noticed that my closed off interior, even with light blockers is fully lit and bright. I’ve changed the intensity of my skylight but I need to set it to 0, just to make the scene dark inside.

Is this a limitation of forward shading? Does it disable a certain feature? Any help would be greatly appreciated.

in forward shading a skylight acts like a static ambient term. this is a desired function for “low fidelity” graphics or mobile rendering. you should not make it too bright and rely on a sun lamp aka directional light for outdoor scenery.

or if you change scenery you gotta have a form of controller (via triggers or something) and dim the skylight/ambient term when you move indoors.

Thank you for the reply.

Are there many other draw backs from using forward shading? I’ve not managed to find any documentation yet on it as a direct comparison to default deferred shading.

Immediately it makes my editor work perfectly even at epic settings whereas using I’d be 1-2gb over my VRAM limits. Surely more people would want to use this feature…?

You can get proper skylight shadowing in the forward renderer by baking it to a lightmap, similar to using the deferred renderer without Lumen.

Too many to even list.

the main drawbacks for forward shading are:

limited lighting. ambient lighting gotta be baked or managed. the default for mobile rendering (based on 4.26) is 4 movable point/spot lamps and 1 movable directional cascade. that is per mesh. not sure how many lamps ue5 manages now. light overlap should be managed. same as in deferred. you can use regular or distance field shadows. reflections can only be screenspace or planar. or you can use old school translucent floor hacks.

you can still do nice graphics if you’re a good artist.

Fairly sure screenspace reflections don’t work with the forward renderer

not… then. i dunno. i don’t use screenspace anyway. planar works tho, right? that is screenspace too, afaik.

Planar reflections aren’t screenspace but yes they should work. Reflection captures are really expected to be your main reflection method.

Mobile also has an SSR alternative called pixel projected reflections, but I’m not sure if it requires the mobile deferred renderer, I assume it probably does.

I wouldn’t necessarily consider any of it a drawback - its apples and oranges.

Forward rendering probably means you will be able to ship a product that looks nice and has 60fps or more.

Deferred rendering means you aren’t going to ship at all, or that what you ship will be sub 30fps and unplayable.

Often enough, projects start off in deferred and fight the engine only to have to be swapped and re-worked to get something they can release.

Not sure if locking yourself into forward rendering from the start is good or bad. Its just different… and by that i mean different than all the tutorial and stuff youll see around… so you probably have to know what you are doing a bit more, whereas in deferred you can pick any tutorial and follow along exactly…

1 Like

Thank you for all of your replies. Upon further digging, a recommendation I found which has actually been a huge increase in performance has been simply changing from DX12 back to 11. So far, I’ve not noticed any obvious drawbacks. Is there anything of interest I should be aware of using 11 over 12.

Entierly different / disables some newer things.
The output almost always looks different.

You’ll never get any ray trace stuff or similar things on it.

It’s old, but there’s nothing bad about it…

Also since DX9 is still retroactively supported I don’t think you’d get any issues for compatibility from anyone - at worse you just include the appropriate ms given re-sharable driver installer in your final packaged product…