Benjamin Bertato joined us to discuss how he crafted a serene Japanese temple scene set in autumn, drawing inspiration from his visit to Japan and Assassin's Creed Shadows.
Introduction
Hi, I'm Benjamin Bertato, a 3D Environment Artist at TAT Productions in France. I contributed to the animated series Pil's Adventures, developed in Unreal Engine 5, which comes out in 2026.
Video games have always been a major part of my life, which naturally led me to make them my profession. I studied at ESMA in France, where I learned the full process of creating a video game. After graduating in 2022, I specialized in environment art because what I enjoy most is bringing immersive and impactful environments to life, like in my recent project, Japan Temple.
Inspiration
In March 2025, I had the opportunity to travel to Japan, and this project was my way of paying tribute to Japanese culture in my portfolio.
I gathered a lot of references: personal photos, 3D projects from other artists, and most notably, Assassin's Creed Shadows, which I played when I returned home. The game left a strong impression on me thanks to its beautifully crafted environments.
Composition & Art Direction
One of the biggest challenges of this scene was to build it without any main concept art. Working this way is a completely different approach to what I'm used to. It requires a lot of iteration, research, and self-criticism, because you can't plan all the elements in advance.
What I'm looking for right from the blocking of the scene is to make a composition that works, with lines of force and a main focus on one element.
I made a lot of adjustments to the composition throughout the project to find a layout that really conveyed the mood and focus I was aiming for.
Technical Workflow
Here's a breakdown of my typical workflow when creating an asset:
- Blockout in Blender: I start with a rough blockout to define the overall shape and proportions. I usually import it directly into Unreal at this point to test how it fits in the scene;
- Sculpting in ZBrush: I move on to high-poly sculpting, keeping the mesh below 5-6 million polygons to stay efficient and avoid wasting time on tiny details that won’t be visible once textured;
- Decimation or Retopology: If the object is animated, I go through a clean retopology process in Blender. If not, I opt for decimation in ZBrush, but still maintain a clean and uniform polyflow. For me, it's a huge time saver!
- UV Mapping with RizomUV: I used this project as an opportunity to learn RizomUV, which I found easy to pick up. In this project, I decided to use 2K maps and apply a texel density of 1024px/cm. This is a fairly high resolution used in FPS games.
- I use two UV sets. UV0: for baking and RGB masking (everything stays inside the 0-1 UV space). UV1: for tiled textures with consistent texel density, thanks to an add-on in Blender (even if the UVs go beyond the 0-1 range, depending on your object size);
- Creating the collision in Blender: Generally, I use the blockout model to be my collision mesh, but sometimes, you can just create one with some basic shapes;
- Baking & Masking in Substance Painter: I bake my maps using the high-poly from ZBrush, then create RGB masks that I later use in Unreal to define surface variation as Red: dirty areas, Green: curvature highlights, Blue: roughness variation.
Then there are the more specific assets, like the temple modules, which all needed to fit together seamlessly, no matter the combination. To make this work, I had to ensure that everything followed whole-number dimensions and double-check all the alignments directly in Blender.
As for the upper roofs of the houses, I chose to assemble the modules directly in Blender and turn them into a single mesh. Keeping them modular was too limiting if I wanted to preserve the distinct curved shape typical of traditional architecture.
Vegetation required a different workflow, and for this part, I used SpeedTree. At first, I approached it with a traditional game optimization mindset, using cards for small branches to reduce polycount.
However, with recent versions of Unreal Engine, the foliage workflow has evolved. Nanite handles polygons far better than alpha transparency, which can become a bottleneck. So I shifted my approach and decided to model and scatter individual leaves, significantly reducing the use of alpha cards.
As a result, I not only saw a performance boost, but also achieved a much higher visual quality in the foliage.
For the textures, I used Megascans as a base, then customized and created multiple variations in Substance 3D Designer to add diversity and match the style of the scene.
Master Material
Once the asset is ready, I import it into Unreal and apply a master material I designed to be efficient and reusable.
This material includes:
- The three core texture maps: Base Color, ORD (Ambiante Occlusion, Roughness, Displacement), and Normal Map;
- Controls for intensity adjustments of each map;
- Color tweaks: hue, saturation, brightness, contrast;
- A secondary normal map to add micro-details;
- Dynamic use of the RGB masks for localized variations;
- RVT blending to hide transitions with the landscape and make it more natural;
I also created several custom master materials for more specific use cases:
- For the landscape, I set up a material that allows me to blend multiple textures smoothly, using masks and height blending for more natural transitions;
- For vegetation, I added wind animation and Subsurface Scattering (SSS) to enhance realism and make the foliage react naturally to lighting and movement;
- For the rocks, I used a technique to blend multiple textures together, and applied them using world-aligned mapping. This helps achieve seamless transitions, regardless of how the meshes are placed in the environment.
Tiling Texture
I use Substance 3D Designer to create tiling textures, and my workflow is generally consistent across different materials. I always start by gathering references, then breaking down the material into layers of visual complexity.
Let's take wood as an example:
The process is similar to modeling: we begin by defining the primary shape, in this case, the wood fibers. Once the base is established, I gradually add secondary and tertiary details, such as grain noise, knots, and cracks, making sure to prioritize them for better readability.
When the height and normal information are convincing, I move on to color. Realism comes from the subtle variations in hue, roughness, and value. These are often driven by layered and distorted noise patterns, blended carefully to simulate natural irregularities.
I don't hesitate to iterate multiple times, small tweaks often lead to big improvements. Once satisfied with the result, I pack my texture maps (AO, Roughness, Displacement) into the appropriate channels so they’re ready to be used in my master material inside Unreal Engine. All my maps are in 16-bit except for my Base Color in 8-bit.
Tips: When you decide to pack multiple maps into the RGB (or RGBA) channels, it's important to understand that not all channels are treated equally during compression. In the most common formats like DXT/BCn (Block Compression) used by Unreal Engine, channel quality varies:
- The red channel is slightly degraded;
- The green channel retains the highest precision;
- The blue channel is the most compressed and loses the most information;
- The alpha channel behaves similarly to red, often slightly compressed;
This is due to perceptual encoding: the human eye is more sensitive to green, so compression algorithms prioritize it. Sometimes, I've also used Mixer to blend several textures from megascan to speed up the process.
Lighting
For the lighting, I hesitated for a while between a night scene and a sunset. In the end, I chose a sunset because the warm tones would enhance the orange hues already present in the scene, creating a more harmonious color palette.
To set up the lighting, I used the Ultra Dynamic Sky plug-in. I'm comfortable with it, and it allowed me to get solid results quickly.
The first thing to consider is the sun's direction, which defines the light/shadow balance, which strongly influences mood and composition. From there, I moved on to building the atmosphere using elements like clouds, fog, and god rays, always keeping in mind what I want to highlight or emphasize in the scene. Once the global lighting and atmosphere were in place, I added secondary light sources (candles, lanterns, and braziers) to enrich the scene and guide the viewer's or player's eye through the environment. Finally, I used a few artificial lights in specific spots to bring out key details in darker areas. These subtle additions help improve readability without flattening the contrast of the scene.
Post Process
Post-processing is often one of the final steps in a project, where you refine the overall visual tone of the scene. In this case, I applied a custom LUT (Look-Up Table) that I created using Photoshop. The process is straightforward:
- Download a neutral LUT as a base;
- Take a screenshot of your scene and import it into Photoshop;
- Apply your color grading adjustments (contrast, saturation, tones, etc.) to that screenshot;
- Once you're happy with the look, apply those same adjustments to the neutral LUT;
- Export the modified LUT and import it into Unreal Engine;
- Make sure to mark it as a LUT texture in the texture settings so it works properly in the Post Process Volume.
After setting up the LUT, I fine-tuned the look of my main camera shot, adding some chromatic aberration and a touch of vignetting to subtly draw attention toward the center of the image and reinforce the cinematic feel.
VFX
First of all, I'd like to thank Laura Vassal, who created the VFX for this project. While I can't go into technical detail about her process, I can say that the visual effects add an essential layer of polish to the scene. They help bring everything to life and greatly enhance the sense of realism and immersion.
For this project, I asked her to create several key elements:
- Smoke for the incense burners and candles;
- Fire for the candles and braziers;
- Falling leaves and flying insects enrich the atmosphere;
- Localized fog to support and reinforce the composition;
- Distant birds flying across the sky help to convey the scale of the environment.
These subtle but meaningful additions contribute a lot to the final result and help make the scene feel alive and dynamic.
Conclusion
This project took me around three months to complete. One of the biggest challenges was staying motivated throughout the entire process, especially since I had no concept art to rely on, I had to constantly take a step back and critically evaluate every decision I made.
From a technical point of view, the modular elements, and especially the roofs, were quite challenging. They required a lot of planning to ensure consistency and flexibility across the scene.
I also spent a lot of time iterating on the rocks to achieve a natural and believable look. Finding the right balance between shape, scale, and detail was key to making them feel grounded in the environment.
That said, I truly loved building this environment, and I hope it can inspire others in their own creative journey.
I'd like to thank everyone who gave me feedback during the production. And of course, a big thank you to 80 Level for featuring me in this interview.
For anyone looking to become an environment artist, here's my advice:
Take inspiration from the artists you admire, and aim for the same level of quality. Also, never underestimate the value of asking for feedback, and take time to polish and properly present your project before sharing it. A good final presentation can make all the difference.