Environment Design (Lighting and Volumetric Fog)

In my Unreal Engine project, I aimed to achieve a balance between high realism and optimal performance, particularly focusing on lighting and dynamic environmental changes. Here's an overview of the improvements I made:

SPRING QUARTER 2024

6/19/20242 min read

I was looking to balance high realism, while also keeping optimal performance in general, and in particular lighting and dynamic environmental changes. My below plan is a description of how i have improved this Unreal Engine project with some of the adobe photoshop online training. Here is an outline:

Fog Optimization:

To maximize the efficiency of the Volumetric Fog, I restricted its area of influence with Box Boundaries to reduce its impact on framerate. I also dialed down the fog quality to suit the strength of the platform I was targeting, and even used Exponential Height Fog in a few instances also, for a lighter fog that trailed naturally.

Light Baking:

To decrease the burden on my GPU by decreasing the number of lights in shadow calculations, I took advantage of Light Baking for certain environmental static lighting components. I designated lights appropriately between the options of Stationary and Static Lighting where dynamic updates weren’t as necessary, to maximize my rendering efficiency.

LOD for Shadows:

I used Levels of Detail (LOD) in order to have better performance in bigger dynamic scenes – shadowing done this way requires only slightly less than real-time even on slower hardware. Moreover, by modifying shadow quality settings and enabled the cascaded shadow maps I was able to conserve detailed shadows without paying too much performance cost.

Dynamic Lighting Adjustments:

I made more drastic adjustments in order to properly represent subtle changes in lighting over the course of a day. When creating Dynamic Lighting Settings, by using Brightness Curves and setting Lumen and Exposure values, I created immersive lighting setups internal to Light mass. Each time (representative of midday or sunset) would create a plausible feel, and I made sure the lighting scene appeared more realistic by adding Light Color Grading and Post-Processing Volumes.

Reduction of Overdraw:

Eliminating Overdraw reduces the cost of rendering complex multi-object scenes. I used an optimal approach that combined efficient material consumption and polygon count for distant objects. Occlusion Culling also beyond me.

Performance Profiling:

During the development, I used profiling tools like Unreal Insights and Stat GPU to track performance very closely, and to alleviate the associated bottlenecks. I also kept an eye on memory, in order to avoid any performance degradation.

See details about Stat GPU

https://docs.unrealengine.com/4.27/en-US/TestingAndOptimization/PerformanceAndProfiling/GPU/

Artistic Enhancements:

At last, I added some Post-Processing Effects and found a balance between image quality and performance. I readjusted Bloom, Depth of Field and Ambient Occlusion intensity, so they looked natural and realistic but didn’t eat up the GPU. Scripted automation helped me achieve the transition between day and night as a smooth one. The lights, color grading and shadow settings were changed in real time, and the player can walk into the dark after sunset with ease. And with these two pieces in place, I was able to create a high-fidelity and richly interactive ‘otherworld’ environment that was scalable to contain thousands of both participants and primates.