This environment is a personal project inspired by the riads you see in Morocco. Many of these riads were once homes to wealthy merchants and in present-day have been converted into small boutique hotels for travelers to stay in. I created this environment with such spaces in mind.

OVERALL SCENE & LIGHTING

I created 2 lighting scenarios for this scene, day and night. Each scenario has a different combination of prop arrangements, point lights, sky lights, post-process volumes, and bent cards with sunbeam/moonbeam alphas to evoke the moods. My goal was to create a space that felt calm, inviting, and refreshing - an oasis - in both scenes.

ASSETS

The scene was built with modular architectural pieces, props, and foliage.

A small number of unique assets are used once to emphasize the focal area and assist in drawing the eye.

Large and small props are arranged to convey narrative and mood for the different scenes.

I used Blender to model, UV, and export all assets.

BASE TEXTURES AND MATERIALS

This scene uses approximately 45 different base materials.

The base materials, trim sheets, and foliage atlases were all hand-painted in Photoshop. I had not painted anything in quite a while before this project, so I wanted to have fun and challenge myself as an artist by creating everything from scratch by myself. I used Photopea to generate the normal maps.

I wanted the textures to have a more stylized feel and focus more on larger areas of color with some smaller complimentary areas of detail. This is in contrast to the sometimes very complex design motifs that you often see in Moroccan zellij tiles, so it took me a few attempts at brainstorming to land on motifs that felt true to the references while still emphasizing simplicity and readability for a game environment.

MATERIAL LAYERS AND MATERIAL INSTANCE BLENDS (MIBs)

I utilized Unreal’s Layered Material system in conjunction with packed RGB masks so that the same layered material instances can be used by many assets with just a different packed mask and blend mode.

I created a master material for all the downstream material layers to be children of, allowing me to adjust textures, metalness, specularity, opacity strength, and hue shifting parameters for each base material layer and even within the material instance blend asset if needed. Each MIB has a main acting base material layer, with the packed masks using the red, blue, or green channels to expose different material layers.

PACKED MASKS

The packed masks were created in Substance Painter by utilizing generators in conjunction with the assets’ baked maps and hand painting with custom alpha brushes I made. I typically assigned red for edge wear/convex angles, green for dust/dirt buildup/concave angles, and blue for a custom effect of what felt appropriate.

Each packed mask is assigned to the 2nd UV channel using the 0 - 1 space. Each packed mask is for a set of assets, typically 6 - 8 pieces per set. The only assets that do not have a packed mask are very small props.

This allowed me to have assets of each set all use the same MIBs, greatly helping when making adjustments for visual consistency as well as being much more performant. Decals from texture atlases further add unique detail.

DISPLACEMENT

I found that certain assets looked better with different modeling and texturing techniques to provide the look and depth certain materials have in the real world.

For the date palm tree trunk, I measured and modeled out the bark silhouette based on the texture I had painted and didn’t use any displacement maps. I wanted the more defined shapes for the chunky dead frond ends.

For the filigree detail around the arches, I used a displacement map in conjunction with Unreal’s Nanite system to achieve the desired effect for the much more complex and delicate material.

WATER

I created the water material by following a few different online guides. With the parameters that I built and exposed, I can create different material instances that allow me to adjust to panning speed, foam strength, amount of ripples, opacity, and much more. This allowed me to create the running waterfall and still pool water from the same parent.

The programs used to create this project:

Blender, Photoshop, Photopea, Substance Painter, and Unreal Engine 5.

No Generative AI was used in the making of this project.

Thanks for reading! :)

Next
Next

Bristlecone Pine Trees Study