logo80lv
Articlesclick_arrow
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
Newsletter
Advertiseplayer
profile_loginLogIn

Capturing a Rainy Day in Islamabad with Unreal Engine 5

Zubair Tanoli explained to us how he created The Faisal Avenue project, focusing on the rain and the lightning that helped him achieve a cinematic view of the daily life in Islamabad. 

Introduction

Hello, my name is Zubair Tanoli, and I'm currently working as a 3D Artist at Epic Games. In the past, I've collaborated with studios such as Ice Animations, Funky Rockets, Innovative Solutions, Anti-Clock, VFX Dudes, and Mindkix. My work has spanned commercials, animated series, and movies, including multiple seasons of cartoon series for Cartoon Network, as well as projects for LU, Bisconni, Al-Mansour, Suntop TVCs, Cocomo, Time Hoppers, and many others.

Since my last interview with 80 Level, my career has grown in a very positive way. I've become more active in creating personal artwork in my spare time, focusing on research and development, and exploring new workflows. At the same time, my social presence on platforms like LinkedIn and Facebook has expanded, helping me connect with valuable professionals, grow my network, and reach a much wider audience.

The Faisal Avenue Project

The Faisal Avenue project started as a personal idea during my free time. I've always wanted to capture and reimagine an iconic part of Islamabad, and Faisal Avenue stood out because of its scale, structure, and how it frames the city around it. My inspiration came from everyday life in Islamabad. I wanted to translate something very familiar into a cinematic environment that feels both realistic and slightly surreal and dramatic.

With this project, my main goal was to push myself in a few areas: building a large-scale environment with strong readability, experimenting with surreal and dramatic workflows inside Unreal Engine, and refining my approach to lighting and atmosphere. I also wanted to challenge myself to balance technical efficiency with artistic direction. Making something optimized enough to run smoothly in real-time, while still visually striking.

For referencing, I had the chance to travel from Karachi to Islamabad several times for office visits, and during those trips, I captured videos and images of the surroundings to use as reference material. Alongside that, I used Google Earth to understand the overall layout and scale of the area. I also studied dash cam and time-lapse videos of Faisal Avenue on YouTube, and went through countless clips on Instagram to capture Islamabad's atmosphere, from how the city transforms on a rainy day to how the Faisal Mosque appears from a distance. I was particularly inspired by how beautiful Islamabad looks at night, and I even planned to create a night version of the project. However, due to time constraints, I decided to wrap up this piece and move on to exploring new ideas in my upcoming projects.

For the composition, I initially used references, like footage from multiple visits to Islamabad and Google Earth, to understand the avenue's overall structure and flow. Interestingly, the main establishing shot was created at the very end, while the final shot in the video served as the primary foundation for the layout and animations.

The blockout was done in Unreal Engine, and I used the BlenderGIS plugin to extract real-world location data from satellite imagery. Although not perfectly accurate, it provided the overall scale and placement of objects like road pathways, traffic signals, and general traffic patterns, which proved extremely helpful as a starting point for the blockout mesh.

Once the structure was in place, I moved on to modeling, combining Megascans assets (mainly road textures, pathway textures, curbs, etc.) with custom-built models, such as street lamps, fences, and other props, to achieve both accuracy and efficiency. I relied heavily on modularity and instancing to reuse pieces without compromising variation.

Texturing

For texturing, I used Megascans textures as a base and applied them to my custom-made master material, which supports multiple-layered PBR maps with simple Triplanar support. On top of the Megascans base layer, I added additional texture layers and blended them with procedural masks to break up repetition and add natural variation.

I also included an extra layer above the base PBR layers to introduce further albedo randomness, making the materials more versatile across different surfaces. Additionally, I implemented ultra-dynamic weather options on a per-shader basis, allowing control over puddles, wetness, and other environmental effects.

This workflow lets me efficiently achieve high-quality, flexible materials that work well with modular assets while maintaining visual richness and detail.

Once my blockout was finished, I added cars, which were mostly from Unreal Engine's city template project. These cars were already rigged, which made animating them much easier. I animated the cars using Camera Rig Trail, allowing me to animate multiple cars at once efficiently. For the car materials, I used automotive car materials suggested by my brother Uzair Tanoli, which are available for free on Fab, and they worked really well. I also modified these materials and added a weather layer to give the cars a subtle wet look.

On both Megascans and custom models, I applied my Master Material, which allowed me to use multiple-layered, complex materials for added variation and realism. For curbs and sidewalks, I used simple Blueprint splines to create clean, adjustable shapes.

For scattering, I relied on Unreal Engine's paid plugin IA Scatter, which I had previously used on my project Serenity in the Storm. It's very straightforward: I set up one cluster with multiple tree meshes and then copied and pasted the volume across different areas. I used the same plugin to scatter foliage in both the background and foreground. On the road, I even added very small pebbles (barely noticeable, but they contribute subtle detail in certain shots). This workflow works similarly to Unreal Engine's PCG but without manually setting up rules, saving significant time while maintaining natural variation.

Lighting & Animation

For lighting, I started with a basic HDRI backdrop in Unreal Engine and tested multiple free HDRI maps. I ultimately chose the overcast_soil HDRI from Poly Haven, as it fit the mood of my scene well. To break up the overall diffuse lighting and add realism, I introduced a Directional Light to give the scene a subtle sense of direction.

Beyond the global setup, I placed emissive lights wherever the environment required them, such as road lamps, traffic lights, and vehicle headlights. To enhance their impact on the surrounding environment, I added supporting Point Lights that emphasized the glow from these emissive sources.

Atmosphere played a huge role in the look and feel of the scene. I used Exponential Height Fog to establish depth, and to further enhance the mountains and background layers, I incorporated multiple EasyFog cards, which allowed me to quickly achieve a more art-directed and cinematic result.

For the vehicle animation, I used CitySampleVehicles and attached them to a CameraRig_Rail. It's a non-destructive setup, so I can easily adjust speed, direction, and other parameters later without redoing the animation.

Post-Production

My post-production workflow was fairly straightforward but intentional. I first adjusted the shadow contrast, lowering it slightly to soften harsh areas. I then dropped the gamma and increased the overall contrast to achieve a stronger balance between highlights and mid-tones. For exposure, I set it to a level where the image avoided both underexposure and overexposure, ensuring a natural and consistent look.

For bloom, I opted for the standard bloom effect rather than convolution bloom, since the standard version provided the soft, slightly dreamy quality I wanted, which complemented the mood of the rainy environment.

Finally, in color grading, I kept the adjustments subtle. I applied a cinematic grading pass, introducing a touch more vibrance and shifting the palette toward blue/cyan tones to reinforce the cool, rainy atmosphere. These finishing touches helped tie the scene together and enhance the overall mood without overwhelming the base lighting and rendering work.

For rendering, I worked with standard settings. I typically used a 1:1 spatial sample with 16 temporal samples, increasing to 32 samples in certain shots where extra clarity was needed. To maximize overall quality, I enabled the game override option, which ensured higher fidelity in shadows and model details.

Within the console variables, I set r.MotionBlurQuality to 4 for improved motion blur, and used r.ScreenPercentage slightly above 100% to oversample. This produced a crisper output and improved antialiasing, giving the renders a polished, high-quality look.

Rain Simulation

For rain, I used the Ultra Dynamic Weather System (UDS) plugin, which is both powerful and easy to integrate into Unreal Engine. Setup was straightforward: I added the Wet_Weather_Effects node to my main master material, dropped the Ultra Dynamic Weather actor into the viewport, and started with the built-in Rain_Thunderstorm preset as a base.

The main parameters I adjusted included: rain density/particle count to balance atmosphere with visibility, puddle formation for ground surfaces, tuned per material, surface wetness and drip intensity for variation across assets, and preset weather conditions (Rain_Thunderstorm as the base, then refined).

Conclusion

The project took me about three months to complete, though most of the work was done in short sessions over weekends, usually one to two hours at a time. The biggest challenge was capturing the real atmosphere of rainy Islamabad, which is absolutely beautiful in person and hard to translate into 3D with the same depth and mood. Another challenge was conveying a true sense of real-life scale, making sure the scene felt believable and grounded without losing detail.

From this, I learned how important it is to study real-life references closely and break them down into manageable visual elements like lighting, reflections, and material responses. I also visited the actual location several times, which not only gave me direct inspiration from the environment but also kept me motivated throughout the journey. Iteration played a huge role in getting closer to the authentic feel I was aiming for.

For beginners, my advice would be to start small, focus on mood and composition first, and don’t be afraid to rely on references or existing resources. Building gradually with patience and iteration is far more effective than rushing through details.

Zubair Tanoli, 3D Artist

Interview conducted by Gloria Levine

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more