Designing a Diorama of a Realistic Rusty Gate Using ZBrush and Unreal Engine
Sheila Alessandrini discussed the workflow behind the Rusty Gate project, explaining how she used anchor points and projection-based decals for rust and created foliage.
Introduction
I'm Sheila Alessandrini, a freelance 3D Environment Artist based in Italy. I come from a background in traditional art and graphic design, but over time, I shifted my focus to 3D, teaching myself and building a career around environment creation.
Project Goals
I mainly work on stylized scenes focused on mood and storytelling. With Rusty Gate, I wanted to step slightly outside of that comfort zone and focus on improving my approach to foliage, using a more realistic setting to better study how vegetation interacts with man-made structures.
For this project, I deliberately kept the scope small and focused, choosing to create a diorama rather than a full environment. This allowed me to concentrate on specific goals, especially foliage integration, without getting overwhelmed by scale or asset count. The main focal point of the scene is the gate itself, and I spent a good amount of time studying how rust develops on metal surfaces. In parallel, I also explored material definition on elements like bricks to support the overall realism of the scene.
Concept and Reference Gathering
Instead of working from a single concept, I used a mix of photos I had taken myself and others found online as a starting point, combining them through photobashing to design a composition that felt both believable and also unique. This approach gave me enough structure to stay realistic while still leaving room for creative decisions during production.
To support this, I gathered additional references focusing on different aspects of the scene, such as composition, mood, and lighting, drawing both from real-life locations and games. I also collected specific references for the types of foliage I planned to create, including ivy, flowers, and grass, paying close attention to how they grow and are distributed in natural environments.
Once I had a clear direction, I moved on to the blockout, using the photobashed reference as a guide to establish the main shapes and composition. Since the scene is built as a diorama, I focused early on defining the camera angle and ensuring the gate remained the focal point.
Blockout and Composition
I created the blockout directly in Unreal Engine using simple shapes. The wall and the gate themselves are fairly basic, which allowed me to iterate quickly. After a few iterations and some feedback, I adjusted the initial idea and made the composition more dynamic by tilting the side walls instead of keeping them vertical, as they were in the original concept.
I then exported the blockout into Blender to refine the shapes a bit more, while still keeping things fairly simple, especially for the foliage. Even at this stage, it was important to include the main foliage elements for composition purposes. The tree in the background, in particular, plays a big role in balancing the scene and framing the focal point.
Even though the scene is mostly viewed from the front, I liked the idea of developing the back side as well. I treated it as a small overgrown courtyard where I could add denser, smaller vegetation.
Modeling and Prop Study
I also included a few props in this area and started with the barrel as a quality benchmark, using it to practice texturing and refine my approach to rust.
The asset itself is quite simple and was modeled in Blender, with some light sculpting in ZBrush to create the high-poly. Most of the work was done in Substance 3D Painter, where I practiced using Anchor Points and projection-based decals to achieve a more realistic look. I later used this approach extensively for the gate as well.
Here are some useful videos about these topics:
I created these custom decals using photos I took of the gate itself and stock images found online. After importing the images into an editing software, I increased the contrast to better separate the painted areas from the rust, then converted them into black and white masks that could be reused as textures inside Substance 3D Painter.
Material Creation: Brick Wall
After texturing the main assets, I moved on to creating the brick wall material, which was built in Substance 3D Designer using a fully procedural approach. I started by building a base brick pattern, introducing variation in size, spacing, and alignment early on to avoid a uniform look.
From there, I focused on breaking the structure using multiple layers of warping and distortion, which helped soften the straight edges and give the bricks a more natural, irregular feel.
Most of the work was driven by the Height map. I layered different levels of damage, using slope blur and noise-based masks to create chipped edges, surface wear, and subtle erosion. This allowed me to build up depth progressively while keeping control over the overall readability of the material.
For the color, I reused many of the masks generated during the Height phase to introduce variation between individual bricks and add dirt and discoloration. This helped tie everything together while keeping the material grounded and believable without making it too noisy.
Since the wall is a large part of the scene, it was important for the material to hold up on its own while still supporting the overall composition without distracting from the focal point.
To add more variation and depth, I created a second version of the brick material with darker tones and a slightly different Height map, where the grout is more recessed compared to the bricks. I then blended the two materials in Unreal Engine using Nanite tessellation, which helped enhance the surface depth and break the uniformity of the wall.
Breaking the Wall: Sculpted Variations
For the broken side walls, I opted for a more manual approach to better control the silhouette and damage. I sculpted a set of individual bricks in ZBrush, focusing on chipped edges and irregular shapes, and then assembled them directly in ZBrush by rotating and positioning each piece.
For texturing, I used the tileable brick material created in Substance 3D Designer as a base inside Substance 3D Painter. From there, I adjusted the textures to better match the unique geometry, ensuring consistency with the rest of the wall while preserving variation in wear and damage.
Foliage
Since foliage was the main focus of the project, I used this stage to explore a typical game foliage pipeline and learn SpeedTree, which was completely new to me.
During this process, I was mentored by Jared Sobotta, Principal Environment Artist at Naughty Dog, through Vessel Forge, which helped me better understand both the technical and artistic sides of foliage creation.
I spent a significant amount of time gathering references for the foliage, going beyond general shapes and looking closely at different stages of growth. I collected close-up images showing variations such as sprouts versus old leaves, as well as flowers in different states, from closed to fully open. This helped me better understand the structure and variation needed to make the foliage feel more natural.
Before moving into final assets, I created quick blockout atlases in Photoshop. These were used in SpeedTree to establish proportions and overall scale, allowing me to iterate quickly without having to constantly rework textures. I also brought these blockout assets into Unreal Engine to validate their size and get an initial sense of placement within the scene.
Sculpting
Once I was satisfied with the proportions and distribution, I moved on to the sculpting phase, which was the most time-consuming but also the most rewarding part of the process. In ZBrush, I started from a simple plane and applied the blockout atlas as a texture for reference.
For leaves, I first cut the plane to match the silhouette, then sculpted the main shapes and surface details. After that, I added thickness and refined the forms further using different brushes and the bend tool.
To enhance the surface detail, I also created a height map in Substance 3D Designer to simulate vein patterns, which I used to add details to the leaves. It isn't necessary to create from scratch every single leaf. For example, to create the Virginia Creeper, I sculpted three variations of individual leaves and arranged them together to build the full leaf, adjusting their scale and refining some details.
One important consideration was keeping an eye on the polycount in ZBrush, as highly detailed leaves can quickly make the file heavy and more difficult to work with, or in worst cases, even lead to crashes. Because of this, it is important to save frequently throughout the process.
Texturing
The foliage atlases were textured in Substance 3D Painter to allow for a more art-directed and flexible workflow compared to fully procedural approaches. I started by blocking out base colors per leaf, then introduced controlled variation in hue and value to avoid repetition and simulate natural growth differences.
In addition to hand-painting specific details, I also made use of curvature and mask-based generators. These were used to subtly emphasize edges, veins, and natural wear patterns, helping the leaves feel more organic while maintaining overall readability.
I intentionally avoided introducing damage such as holes or heavy surface breakups directly in the mesh sculpt. Instead, I chose to handle this entirely in Substance 3D Painter using opacity masks. This approach gave me much more control over the placement and distribution of perforations, allowing me to decide where leaves should appear more worn or damaged without being locked into the geometry.
Lastly, I paid close attention to the roughness values throughout the process, as it is a key element in achieving believable foliage. Subtle variations in Roughness helped break uniformity across the leaves and contributed to a more natural response to light.
Tree Creation
In a separate SpeedTree file, I created the branch system. I started with the trunk, focusing on proportions and a strong base silhouette. From there, I added primary branches, carefully adjusting their direction and distribution to avoid symmetry and keep a natural flow, followed by secondary branches to further break up the structure, and lastly, I added the leaves. After that, I baked the branches inside SpeedTree and used them as a texture for the final asset.
For the tree, I worked on building it progressively in layers, starting from a very simple structure and gradually adding complexity. I began with the trunk, focusing on establishing a solid base shape and overall proportions. At this stage, the goal was to define the main silhouette and ensure it would read well from the primary camera angle.
From there, I added the primary branches, paying attention to their direction and distribution to avoid symmetry and create a more natural flow. I then introduced secondary branches to break up the structure further and add variation.
Once the base structure was in place, I moved on to the leaves, focusing on distributing them in clusters, which helped create a more organic look and avoided a "flat" appearance. Variation in scale, rotation, and density was key to making the foliage feel more natural.
Throughout the process, I regularly checked the tree in Unreal Engine to ensure it worked well within the scene and maintained the right scale and visual balance.
To create the growing ivy on the trunk, I started by generating new branches from the main tree and applying a force system to the trunk. This allowed the trunk to act as a force, guiding the ivy branches so they would naturally follow and wrap around its shape.
I used the same principle for the ivy leaves as well. By using the trunk as a force, I was able to better align and orient the leaves, giving them a more natural attachment and overall appearance.
I used a similar approach for the ivy clusters, but instead of using the trunk as a force, I imported the full wall blockout into SpeedTree. This allowed me to make the ivy follow the shape of the wall more precisely and achieve a more natural attachment to the surface.
I created an ivy kit containing both custom-shaped clusters and more generic variations, which I reused throughout the scene, especially on the back side. I also made smaller horizontal pieces that could be used as "caps" and create smoother transitions as the ivy drapes down both sides.
The smaller foliage and flowers were generally much simpler to create. To simplify the process, I first assembled the flower heads in Blender and then imported them into SpeedTree as meshes.
Most of the plants were built from just a few main elements, typically a stem and a set of leaves. Using anchor points along the main stem, I was able to distribute additional leaves and place the flowers on top, making it easier to control the overall shape and create natural-looking variations
Decals and Surface Blending
Decals played an important role in breaking up repetition and adding localized detail across the scene. Instead of relying solely on the base materials, I used them to introduce dirt, stains, and subtle color variation in areas where wear would naturally occur, such as at the base of the walls, in corners, and around the gate.
They were also useful for blending different elements together, helping to soften transitions between the walls, ground, and props. By keeping the decals subtle and placing them intentionally, I was able to add visual interest without making the scene feel overly noisy.
In addition to standard color and roughness decals, I also created decals with normal information to simulate damaged bricks, particularly on the column edges. This helped add extra depth and detail without modifying the underlying geometry.
I also experimented with Parallax Occlusion Mapping (POM) decals to create tire tracks on the ground, introducing more pronounced surface detail while keeping the base material relatively simple.
Terrain
For the terrain, I used three different materials blended: one grass texture and two variations of soil and dirt. To add extra breakup and surface detail, I also used decals with small stones and leaves, alongside scattered rock meshes placed using the foliage tool.
Since I wanted to preserve the "diorama" feeling of the scene, I avoided extending the terrain too far or ending it with harsh cuts. To achieve this, I created a custom mask for the ground plane in Substance 3D Painter. The mask is a simple hand-painted black and white texture created with a soft brush, which allowed me to fade the terrain more naturally toward the edges. I also introduced a subtle dither effect to further soften the transition and avoid a sharp silhouette.
Lighting
The lighting setup for the scene was fairly straightforward, relying mainly on a single directional light. Rather than focusing on complex lighting setups, I spent more time balancing readability and shadow distribution across the environment.
Since foliage can easily become too dark or visually noisy, I wanted the scene to remain evenly lit while still preserving enough contrast and depth. A big part of the process was finding the right balance between illuminated and shadowed areas so the vegetation would stay readable without flattening the overall image.
To help make the environment feel more believable, I also added a few trees behind the scene that aren't visible, but help cast additional shadows onto the walls and terrain. Even though the project is presented as a diorama, these subtle shadow variations helped create the impression of a larger environment extending beyond the visible frame.
Final Presentation
For the final presentation of Rusty Gate, I wanted to create a short cinematic video that would help reinforce the atmosphere of the scene and showcase the environment in a more immersive way.
After previously collaborating on my Cinque Terre project, I once again worked with Samuel Oddamo, who created an original music track based on a brief I provided. This time, I wanted the music to feel calm and melancholic, matching the quiet and slightly abandoned atmosphere of the environment.
I used Unreal Engine's Sequencer to capture a series of cinematic shots focused on the composition, foliage, and materials, helping emphasize the mood and overall presentation of the scene.
Conclusion
Overall, Rusty Gate was a very valuable project for me both technically and artistically. It helped me strengthen my understanding of foliage creation and environment integration, while also improving my ability to balance realism with readability in a scene.
Working on a focused diorama instead of a full environment allowed me to dedicate more time to refining materials, vegetation, and composition, which made the learning process much more effective. Learning SpeedTree from scratch was also a big step for me, and it pushed me to experiment with different workflows until I found approaches that felt both natural and reusable.
In the end, this project gave me a much deeper understanding of how to build cohesive environments where all elements work together in a clear and visually pleasing way. I hope you find this article useful and inspiring. There's definitely a lot more I could talk about that I might have missed here, so feel free to reach out if you have any questions!