With this quick break-down of the following film, we wanted to illustrate some techniques that are based on an architectural visualization workflow in Unreal Engine.
Version française: https://www.filma.fr/retour-sur-experience-avec-unreal-engine/
This particular project relies heavily on “Dynamic Shadows” for more detailed vegetation and modified high quality “Screen Space Reflections” for smoother results. Both of which provide cleaner quality visuals, yet have a significant impact on performance. As such we targeted an average frame rate of 30fps @ 4K, with optimizations coming from “Level streaming”, shading techniques for the vegetation and keeping draw calls to a minimum.
The lighting consists of a static “Skylight” with an HDRI and a “Directional Light” (Sun) set to movable. With this set up we can have a base diffuse sky lighting for detailed shadows and a dynamic sun that can be tweaked to better contour the architecture shot by shot.
The project is split up into individual levels that are lit the same way, with proxy geometry from the other levels merged into a single asset, so that there is accurate light occlusion when calculating the “Lightmass”.
All of the levels are set to Always loaded in the levels window. In the “Sequencer” we can then direct the visibility of these levels to optimize the sequence on a shot by shot basis.
In order to simulate “Lightmass” rendering and get realistic deep shadows in the vegetation, a pre-baked shade map was generated for each plant and implemented into a 2 sided leaf material.
The pre-baked lighting scenarios and material set-ups vary greatly depending on plant type and species.
By completely bypassing the need for “Lightmass” rendering we can now have high quality shading for thousands of plants at no cost.
For the grass we created a top-down texture projected on a plane with displaced vertices matching the roots of the grass.
The advantage of this technique is that the grass maintains its shading no matter the angle of the light source. "Contact shadows" for the direct light were set to 0.01.
In order to keep the draw calls in check, the grass was pre-scattered and merged into large patches.
Final sequence includes reflection captures at 512 and Screen Space Reflections at 24 x 24.
A very special thanks to Luoshuang's GPU Lightmass Solver, saved us a tremendous amount of time and effort!
Asset reference :
- AXYZ Anima for the animated people
- Digital Dive Studio on the Unreal marketplace for car assets
- Textures.com for all things textures
- TAA Sharpen Post Process Material from UE forum user “hallatore”
- Hdrihaven.com for all HDRI images