Environment Art

Matt Cook


Matt Cook

3D Artist


Hey Everyone, My name is Matt Cook, I’m an Environment Artist from Australia. Currently, I am working in Canada at Respawn.


The inspiration for this scene came from playing Bloodborne, my first Soulsborne game. I was horrendous at it and died thousands of times over the course of weeks.
But I eventually got the hang of it, and it became one of my favorite games. I started thinking about what it’d be like trying to bring it up to today’s standards. So I decided to give it a go.


After finding the sewer concept. I mostly just ran around the sewers in Central Yharnam taking screenshots and sending them to myself.
I also like to look at other artists’ take on a subject, which is where the Demon’s Souls remake and Ivanna Liittschwagers work came in handy. The SoulsBorne work BluePoint and Ivanna have done was really inspiring, and a great quality bar.



The first thing I do when I’m getting ready to block a scene out is to study the reference or concept, and highlight the different modular pieces I need to make.
This way I can block out my modules, (making sure I’m modeling to the grid), layout the scene, and iterate to get the scale to “feel right”.


Once I’ve finished my Blockout I’ll start modeling my final modules. Since the scene is mostly made up of brick walls, I modeled all the architectural pieces, divided the mesh to paint my vertex colours, then placed bricks over the top to give it additional depth. (side note, I have back faces on my modules to avoid any lighting bleeding).


I like to have a UV set for my texel density, and a second UV set for any 0-1 textures.
This way I can assign Map0 to my tileable textures, and Map1 to my 0-1 textures.
The texel density across the scene is 1024 per meter.


I mostly use tileable textures, and utilize vertex colours, grunge maps, blend masks and slope functions for blending.

Any assets that I want to have a sculpted feel, I would sculpt it, bake a normal map, ambient occlusion map, and curvature map, then blend them into the textures in the shader. To speed up the process and keep everything consistent, I like to have a master material instance and have it be the parent to any other material instance of that material. For example, I have the stone column material as the master instance for the stone trim, now whenever I update any parameter, it will update across all the assets made of stone.

Stone asset example

I used a mix of mask blending and slope-based blending.

Brick wall example

I used a mix of vertex colour blending and slope-based blending.



Decals are a small thing that go a long way with environmental storytelling. All my decal textures were sourced from






Since it was my first time using Unreal 5, I wanted to experiment with Lumen and keep everything realtime. I feel the result is pretty good, especially since no baking is required.
I was mainly trying to make it feel creepy like if you were playing the game you would hesitate to walk through the map.
I wanted the atmosphere to feel cold, and have bright hot spots, which I pushed in the lamps and the.
The setup itself is really simple, I have a skylight, directional light, spotlights coming out of the lamps, a point light to make the fire feel like it’s affecting the environment better, and a spotlight pointed at the arch to make it pop a bit.



Thank you for reading, I hope this was helpful and gave you some ideas. If there’s any info that wasn’t clear or you have a question about something I didn’t cover, don’t hesitate to message me on ArtStation!