Concept art
This diorama was a project from my 3rd semester in Game Art at George Brown College, where we first seriously learned about creating game assets. The setting could be any place during the Crusader period, and I chose an Ottoman Empire theme to do something different. I’ve always been fascinated by the beautiful patterns in Islamic architecture, and replicating those designs was a major challenge, especially since this was my first time learning how to texture. For the cinematic video at the end of the semester, I was allowed to work with a higher poly count than typical game assets, which gave me more creative freedom.
A few reference images
Baking textures is an essential step in 3D modeling for video games when Nanite mesh shaders in UE5 aren’t used. It allows us to transfer details from high-poly models to low-poly ones. Even without a high-poly model, baking is still necessary to generate maps like world normals, ambient occlusion, and ID masks, which are crucial for using smart materials and masks. In this diorama, the only instance where I baked a high-poly model to a low-poly one was for the walls, which were blocked out in 3DS Max, and the details were sculpted in ZBrush. The key part that needed baking for the normal map was the rocks and dirt along the edges.
In hindsight, I could have approached the materials differently. Instead of baking specific textures for the entire wall, I could have used tiling textures for the patterned tiles and reserved specific texture maps for the edges. For this project, I hand-painted the patterns on the tiles, which was time-consuming. A more efficient option would have been to find similar patterns on textures.com, especially since we have premium access at school.
Low poly model of a wall
A quick block out in 3D
High poly model
Imperfections help tell a story and enrich an object’s appearance. Unless you're working in a futuristic setting where everything is laser-cut, imperfections can be found on nearly every surface. Even a brand-new object might have minor scratches or a layer of dust if it’s been sitting for a while. Imperfections also tell a story of use, like a lipstick stain on the rim of a glass. It’s important to consider imperfections not just in the textures but in the silhouette of the object as well—a perfectly straight edge rarely exists in real life. Adding subtle noise to break up a straight edge is crucial for making an object look more convincing.
Extra vertices were added to break the straight edge very slightly
There are several ways to create patterns on an object. One method is to sculpt the pattern and bake it from the high-poly model to the low-poly model, as I did with the wall. However, there's another approach that I find more foolproof, as it allows for easier adjustments: texturing in Substance Painter. For this method, I used the UV layout to assist in drawing a mask, which I then applied to mask out a layer in Substance Painter. Swapping the mask can quickly change the pattern, making it much more convenient to adjust as needed
One of the mask I hand drew
Imperfection on the surface of the oil lamp.
Setting up the materials for this diorama was fairly straightforward. It mainly involved exporting the three maps—base color/alpha, ORM (ambient occlusion/ roughness/ metallic), and normal—from Substance Painter and plugging each channel into the correct node in Unreal Engine. However, in hindsight, this may not have been the most efficient way to pack the textures for this project. Since I didn’t use any alpha information, the alpha channel on the base color map was empty. Additionally, there’s an unused alpha channel on the normal map, and the blue channel for the normal map can actually be derived from the red and green channels. For this particular diorama, I could have reduced the number of texture maps to just two, making the setup more efficient.
Materials alone may not always create a convincing environment, as you're often limited by the texture's resolution. To add sharp, extra details—such as cracks in the road or puddles of rainwater—deferred decals are a great solution. In this diorama, I used deferred decals to add dirt at the base of the wall and introduce imperfections to the wall itself. These decals were created in Substance Painter using images from textures.com and Painter's materials. Deferred decals are an effective workaround to enhance detail, compensating for the limitations of an object's texture resolution.
Material graph in Unreal Engine.
No decal ar the base of the wall
Add decal for dirt at the base of the wall
No decal on the wood
Decal to add damage to the wood