logo80lv
Articlesclick_arrow
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_login
Log in
0
Save
Copy Link
Share

How to Create an Environment Inspired by Wakanda and Guilin's Nature

Mai Al-Arabi shared how she created the Riverside 29 project, explaining how she used Unreal Engine's Landscape system for the ground and how she integrated the architecture with the nature to achieve a balanced scene.

Introduction

Hello everyone, my name is Mai Al-Arabi, and I'm a CG Environment Artist specializing in photorealistic Digital Matte Painting and Full 3D Environment creation for film, television, and real-time projects. My journey began around 9 years ago while I was studying in the Faculty of Applied Arts, Graphics and Advertising Department.

Even though my studies weren't directly tied to VFX, my passion pushed me far beyond the academic path. Through online communities and mentorship, I discovered digital matte painting, and that was the turning point. But painting still frames wasn't enough, I wanted to build entire worlds, not just illustrate them.

This curiosity naturally led me into full 3D environment creation. I developed my skills through continuous self-learning, exploration, and practice. I started freelancing as a matte painter during my university years, and after graduation, I began working as a full-time DMP/3D Artist in Egypt's VFX industry before expanding my collaborations internationally.

Over the past years, I've collaborated with studios and clients worldwide across film, TV, and commercial projects. I've contributed to shows like Earth Abides, Netflix's Paranormal, Awesome Animals, and several Egyptian productions, including The Choice Season 1, Mako, and many others. I've also worked on commercial campaigns for brands like Thumbs Up (Coca-Cola) and Astro FIFA World Cup 2022, as well as large-scale experiences such as SeaWorld Abu Dhabi for Yas Island.

Outside of production, I'm always experimenting, doing R&D, and pushing my skills further, something I consider essential for any artist who wants to grow. In this interview, I'm excited to walk you through my approach to the Riverside project, a piece I truly enjoyed working on and learned a lot from during its creation.

Riverside Project

The Riverside project began as one of those moments where a single mood or cinematic shot sparks something in me. I've always loved building large, detailed worlds, and I enjoy challenging myself with portfolio pieces that push my artistic and technical limits. This project started exactly that way, a mix of creative impulse and a desire to explore something new and challenging.

The main inspiration came from 2 very different yet visually connected sources: Wakanda from Black Panther, especially the wide establishing shots that blend futuristic architecture with nature. And Guilin, China, has its iconic karst mountains, river valleys, and dense greenery.

I was fascinated by the idea of combining the futuristic city feel of Wakanda with the grounded, organic realism of Guilin's natural landscapes. That combination aligned perfectly with the technical goals I wanted to explore at the time.

Before this piece, I had created similar large-scale natural environments using offline renderers, but my main goal with this project was to push things further in two ways: Achieve film-quality realism entirely in real time with Unreal Engine 5, using features like PCG, Nanite, and Lumen, and to build a fully procedural environment, especially the scattering, vegetation dressing, and layout to keep the workflow flexible and non destructive.

It was also a chance to explore how real-time workflows can integrate with VFX techniques, like matte painting and final compositing in Nuke.

Working with Reference

Of course, reference is the most important first step behind any good artwork, and here I selected my main 2 reference directions, which were Wakanda shots for the city layout, sense of scale, composition, and the blend between nature and civilization.

And the Guilin's natural landscapes as a reference for realism, the shape of the mountains, vegetation density, water behavior, and overall atmosphere. With these references, I just had all my answers for art direction, layout decisions, and the final mood I wanted to achieve.

After setting the overall direction and collecting my references, I started with a simple blockout. I usually like beginning outside Unreal Engine just to focus on shapes, so I built a rough layout in Maya with basic planes for the mountain layers, simple shapes for the city silhouette, and a guide for the river path.

These were essentially my main composition zones, and getting their proportions, spacing, and scale right relative to the hero camera was the foundation for everything that would follow. Once this rough layout felt solid enough, I brought it into Unreal Engine to evaluate the composition under real-time lighting.

This step always reveals things you don't notice in offline tools, so I kept the blockout flexible and made multiple iterations. I treat this stage with a lot of patience. Even though it looks simple, it's where a lot of decisions happen. I try not to think about details at all here, as the entire focus is on building a strong, readable composition and letting that guide the rest of the environment work.

For the terrain, I relied mainly on a hybrid workflow between Maya, Houdini, and Gaea, and finally exported it into Unreal Engine. I began by exporting the rough blockout meshes from Maya. These gave me the general shapes and proportions I needed.

From there, I brought the blockout into Houdini to generate the first procedural pass and extract clean Height Maps with some subtle base detail. After that, I moved to Gaea, which offered the speed and control I needed for refining the mountains. Using satmap-driven texturing and Gaea's fast, intuitive nodes, I pushed the heightfields further, focusing on the slopes, curvature, erosion patterns, and the overall silhouette that would later support all the vegetation scattering.

I followed this workflow for all three terrain pieces in the scene (foreground, mid, and background). Once the shapes and textures were ready, I exported them from Gaea and brought them into Unreal Engine as static meshes along with their maps.

Buildings

For the buildings, I decided to keep the workflow efficient and focused, so I used Kitbash3D assets rather than modeling everything from scratch. This allowed me to concentrate more on the environment, layout, and overall world-building development instead of spending time on architectural modeling.

I mixed elements from different kits to create unique combinations, especially for the main hero structure in the center of the scene. The goal was to match the silhouette and proportions I had already established in the blockout while keeping everything stylistically consistent with my references. 

Once inside Unreal Engine, I gradually replaced the blockout geometry with some of the kitbash assets. This step helped me quickly evaluate how the architectural elements were integrating with the environment and whether the overall composition was moving in the right direction.

Then I used Unreal's Landscape system for the ground, starting with a base shape that matched the blockout and then refining it using the sculpt and paint tools to introduce general subtle height variations across the terrain.

For the river, I relied on the water body system, adjusting the spline points to carve a natural flow that matched the reference. This allowed me to iterate quickly and get a believable river path integrated smoothly into the terrain. 

Once the core layout and major shapes were established, I started working on the materials and shaders for the different elements before moving into the main procedural scattering phase, which I'll explain in the next point.

One of the most exciting aspects of this workflow in Unreal is how every procedural update is visible instantly in real-time. Proceduralism is all about fast iteration and flexible changes, and combining that with real-time feedback really speeds up the entire environment-building process.

Texturing, Looke-Dev, and Realism

For this project, I didn't need to manually retopologize or unwrap the mountains or any large-scale geo. Since the environment is designed to be viewed from a distance, I relied on a fully procedural texturing workflow inside Unreal Engine using world-aligned and tri-planar projection techniques. This approach allowed me to completely skip UV unwrapping and instead focus on building layered materials that react to slope, height, and custom masks.

In most of my environment work, I tend to build more advanced material networks to drive terrain detail, always balancing complexity with real-time performance. But in this case, I didn't need to go extremely deep with the material setup, mainly because the terrain was heavily supported by tree coverage and megascans assets scattered across the scene. Those additional layers added a lot of natural breakup and detail on top of the heightfield meshes generated in Gaea.

Initially, I created an Albedo Map in Gaea using SatMaps, but I later integrated megascans rock surfaces, tweaking them to better match the context of the scene. By blending their color, normal, and Roughness Maps over the cliff areas, I achieved a more grounded and realistic look, especially in the exposed rocky areas. This contrast between the greenery and the sharper rock surfaces helped reinforce the overall realism of the environment.

For the landscape, I built a custom landscape material using Megascans Albedo, Normal, Roughness, and Displacement Maps to push the realism further. I also added some procedural macro detail layers to subtly break up the surface and introduce natural variation. These details aren't meant to stand out individually, but they play an important role in supporting the overall realism.

For me, realism isn't about over-detailing a single element, it's about how all visible elements work together. Every group of pixels that contributes to the final frame matters. At the same time, optimization is just as important, so anything that isn't visible is simplified or removed entirely.

So the realism here comes from the accumulation of many things working together. Accurate terrain shapes from Gaea, layered materials, carefully balanced megascans surfaces, set-dressing, lighting, and rendering. No single element "sells" the shot on its own, it's the combination that creates the final believable result.

For the water surface, I used Unreal's default water material. Since the river is viewed from a distance, I didn't need any wave simulation, so the focus was mainly on refining the reflectivity, color, specularity, and transmission values. The goal was to achieve a natural light response where the eye immediately reads the soft surface highlights contrasted against the shadows cast by the surrounding elements along the riverbank.

The buildings already included their own Texture Maps, so from there I started refining and customizing the materials to better match the visual direction I wanted. Using standard PBR workflows, I adjusted the Base Color, Roughness, Metalness, and Specular Values to enhance the sense of modernity and achieve that clean reflective look of modern architecture. These subtle material tweaks helped reinforce the overall mood and tie the city elements together within the scene.

Scene Assembly & Scattering

To assemble the final scene, I first made sure all assets and set-dressing elements were nanite-enabled to keep the scene optimized from the start. I used the procedural content generation framework (PCG) to procedurally distribute the Quixel trees, vegetation, rocks, riverbank details, and the mid-sized buildings across the environment. This is really the stage where the scene started to come alive.

To keep the workflow organized and flexible, I created separate PCG graphs for different zones: Foreground mountain, Mid Mountain, Buildings Zones, Riverbanks, Custom Areas, and so on. This allowed me to distribute them procedurally while still keeping control over placement and density for each zone independently.

There was quite a lot of back and forth during this phase, especially for look-dev of vegetation materials. It's much easier to make good shading and color decisions once everything is scattered in context, so I iterated on material adjustments after assembly to make sure the scene remained visually balanced and believable. I also used a foliage brush for adding some vegetation assets in certain areas.

Lighting & Rendering

For the lighting, the setup was fairly straightforward, but the challenge was finding the right balance: I wanted a sunny look with a soft golden touch on the sun-lit glossy surfaces, without slipping into an obvious golden hour mood.

At the same time, it was important to maintain believable atmospheric depth between all the layers of the environment, enough to separate the elements, but not so much that the scene started to feel foggy or overexposed.

Staying close to the mood and lighting cues from my references was a priority. To achieve this, I used the Ultra Dynamic Sky (UDS) system, which proved to be extremely effective for this type of scenario. UDS gave me full unified control over the directional sunlight, height fog, exposure, and cloud settings all in one place, making it easy to fine-tune the balance I needed.

I decided not to rely on heavy post-processing inside Unreal. Instead, I focused on getting the lighting and overall mood as accurate as possible directly in the raw render. I prefer achieving the highest fidelity I can straight from the 3D scene, without depending too much on post effects, so that any grading or finishing work later feels more like enhancement rather than correction.

For rendering, I used Lumen with high-quality real-time settings. I exported the final sequence as EXR files and moved into Nuke for the final compositing and color adjustments. Here is the raw Unreal Engine render exactly as it came out before any post-production or compositing work.

As a matte painter, this stage is always one of my favorite parts of the process, it's where all the final artistic touches come together! At this stage, I began working on the sky matte painting in Photoshop, replacing the default Unreal sky with something that fit the mood more accurately.

I also added an extra background DMP mountain layer to push the sense of depth. Both elements were then set up as camera projections inside Nuke using the same camera exported from the Unreal sequence.

After that, I moved into the final color grading, balancing the contrast between light and shadow, refining the overall tones. I also added a soft, natural lens flare pass to mimic the natural optical response of a real camera shooting under a strong sunlight scenario.

Conclusion

The project took around five weeks to complete, working non-continuously from the initial idea to the final result. Good planning, a clear direction, and breaking the project into manageable milestones helped me move efficiently through the process. 

One of the biggest challenges, something I believe many artists relate to, is staying patient and motivated during the uncertain middle stages of the artwork. There are always moments where the result isn't clear yet, where the vision shifts, and where doubts make you question what's working and what still feels "off." 

These phases can be mentally exhausting, but they're also what push you to make honest decisions, stay flexible, and give the project fresh eyes to catch what needs improvement. Saving screenshots of different stages throughout the process helped me a lot, as reviewing them regularly allowed me to track the progress, appreciate the accumulation of small improvements, and stay confident in the overall direction.

I'm very grateful for this project. It improved both my artistic eye and my technical mindset. It reinforced how procedural workflows, real-time PCG, heightfields, DMP, and compositing can merge into a smooth and efficient pipeline.

Working inside Unreal Engine made the development fast, iterative, and enjoyable. My biggest advice, especially for beginners, is to plan well and understand why you're creating the project in the first place. Having a clear goal gives you the motivation you need to push through the more difficult phases.

Don't rush into detailing before you establish a solid foundation. Once the structure is strong, everything that follows becomes easier and more controlled. And one important truth I always try to emphasize: The creative process, whether in production or personal work, is never a perfect, linear path.

Even though a breakdown might look clean and organized on paper, the real journey involves back-and-forth decisions, undos/redos, adjustments, and unexpected changes from you, the client, or your supervisor. That's all normal. So if you ever find yourself stuck in those "dle phases," don't abandon the project or label it as another endless WIP.

Instead, focus on making small visible improvements, just one step at a time. You'll eventually surprise yourself with how far it goes. Be patient and trust the process. Let it first exist, do it better later.

Mai Al-Arabi, CG Environment Artist

Interview conducted by Gloria Levine

Ready to grow your game’s revenue?
Talk to us

Comments

0

arrow
Leave Comment
Ready to grow your game’s revenue?
Talk to us

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