Quiddiya City is an ambitious new entertainment district in Saudi Arabia, featuring a state-of-the-art Formula 1 circuit, a theme park, a stadium, and luxurious hotels. Collaborating with Squint Opera, we developed marketing material to showcase this groundbreaking project. This venture marked a shift for me, as most of the content was pre-rendered using the movie render queue rather than rendered in real-time, apart from a few VP shots. Despite it not being real-time, we still faced the challenge of optimizing the massive and complex scenes so we could run them during development and keep render times from getting out of hand. My role spanned a wide range of tasks and it was a great opportunity for me to learn new areas of development.
I was responsible for dressing and lighting a few areas, including the sky pool and sections of the racetrack. For the sky pool, I developed a custom shader that integrated waves, refraction, caustics, and baked illumination from the pool lights. I also made caustic decals to simulate reflections on surfaces surrounding the pool. Additionally, I created another shader for the waterfalls flowing from the edges of the lower pools near the track.
The environment required the implementation of hundreds of lights, which wasn't feasible using traditional lighting methods, especially as Unreal Engine 5's MegaLights system had not yet been released. Initially, I experimented with fake light decals but found their appearance unsatisfactory, even from a distance. To address this, I developed a new system that simulated lighting on surfaces either as decals or as a function within the materials. This system utilized world normals and normal maps from the underlying surface to apply realistic shading and would, brighten the lit area of the surface in a more realistic blend method than the decals default blend effect.
The result was a solution that closely mimicked the appearance of real lights at a fraction of the performance cost. Different versions of this tool were used all over the environment, in some instances even quite close to the camera. I set up all lighting fixtures and most trees as blueprints that incorporated both this system and traditional real lights, allowing easy toggling between the two methods.
I developed a crowd system to populate the level with moving characters, leveraging Unreal Engine 5's Procedural Content Generation (PCG) system. This was my first experience with PCG, and it proved to be an excellent learning opportunity. I packaged the system into a user-friendly tool, enabling myself and other artists to quickly populate large areas with crowds.
The system included three variations: one for scattering characters within a closed spline for large open areas like plazas, another for distributing characters along one side of a spline to be used for placing race spectators lining the track, and a third designed to fill the large viewing stands. The characters themselves were static arch-vis models enhanced with a foliage-style world position offset function to simulate movement. While this approach looked a little odd up close, it was effective at creating the illusion of crowd movement when viewed from a distance. Since then, I’ve created a new version of the system that uses fully animated VAT (Vertex Animation Texture) characters, maintaining a minimal performance cost while allowing for much more realistic character movement that holds up better close to the camera.
I also interspersed a few walking skeletal characters using a simple spline walk blueprint to introduce additional motion among the crowd.
I created some Niagara FX systems for the F1 car that could be triggered in the sequencer. These included exhaust smoke, kicked-up dust, and sparks from the titanium skid blocks.
I was responsible for dressing, lighting, and rendering a few other shots and stills and also animating some of them like the starting light shot.
The Qiddiya Prince Mohammed Bin Salman Stadium has a pretty outlandish design, with it being covered in LED panels and built on top of a cliff. we worked on a few of the renders for the promotional material.
I had a more minimal role on the stadium. I populated the area in front of the stadium with characters using my crowd system and dressed a simple version of the stadium's interior for use in our exterior shots.