Ash Thundercliffe presented a detailed breakdown of the Tudor House Amongst the Clouds project, which includes a lifelike wooden building. He shared techniques for making wooden and brick materials look natural and realistic by adding depth, as well as some time-saving skills.
Introduction
Hi, my name is Ash Thundercliffe. I'm a Senior Environment Artist with over ten years of industry experience in video games. Some games I've worked on are Red Dead Redemption 2 and Modern Warfare II, and I'm currently working on Ghost of Yotei. I've also worked on VR titles such as Lone Echo and Lone Echo 2.
My journey started with my studies at a university in the UK. Specifically, at The University of Derby and studying Computer Game Modeling and Animation. My time there allowed me to grow and realize what career path I want to go towards, which is Environment Art. Architecture and history were already a passion of mine, so this really seemed like a perfect fit for me. Since then, I've worked on many incredible projects and worked with the most talented people in the industry, and I love doing what I do and getting paid to do it.
Starting a New Project
Whenever I start a new project, I ask myself the question, "What do I want to learn?" Learning is what drives all my projects. Even with over ten years of experience, the industry continues to grow and evolve. Back on the PS3, there was no PBR, and now PBR is everywhere and a core part of the video game development pipeline. Now we have ray tracing, volumetrics, tessellation, and even that crazy new thing, Nanite.
I realized it had been a long time since I had worked with Substance 3D Painter and Designer. I also had not touched Unreal Engine since UE4. Those were the goals of this environment. See all the new features that have been added to the Substance Suite and play around with the fancy new tools in UE5.
Being busy with work, balancing my hobbies and everything else in life, I knew I had to keep the project small. This is where the Tudor house came in. Simple shapes, modularity, mix of organic and manufactured materials. This was the ideal project. Very often, I see working professionals and students tend to try to take on a large project in their free time. Something grand and ambitious. The problem with this is that with large projects come large commitments, and it becomes exceedingly difficult to scale the project backward. When working on portfolio pieces, the best approach is to start off small, build up your confidence, and then slowly increase the scope of the project if you want.
I started out browsing Google and came across these images that fit the size and scale of the project I wanted to tackle. It is an isolated home, with minimal set dressing around the building and some foliage around the exterior. Sadly, when trying to look up the original author of these, I was surprised to find that they were AI-generated. This is sadly something we need to tackle now as artists when browsing Google or any other image search software. So many images look "real" now, and you need to do some digging to find out if images are generated or not. Even though these images are AI-generated, I decided to use them as a loose base but focus more on real-life references to pull the project together.
AI art tends to just cobble together ideas without really understanding how everything relates to each other or how something is really constructed; they provide an idea but do not have a way to execute that idea. Because of this, it was extremely important to find references that were real, specifically photographs. These will provide me with all the information I need for construction, wear and tear, materials, and what kind of growth happens around the building. I find it can be easy to get overwhelmed by so many references, so I try to isolate my reference to around four or five key images from which I can pull parts.
Creating the Scene
I really can't emphasize how important a blockout is, especially in a production environment. Very few people can just jump in and start making finished-looking art; you must build up to it.
When making the blockout, the key things are:
- Silhouette
- Scale and proportions
- Consider what is and isn't modular
- Make sure you work on a grid
- Use a few shades of grey to demonstrate where the material breakup will be
Once I had a solid blockout, I could then start throwing some materials on the building and refining some of the geo. The goal here was not to start taking the building to the final; it was like taking a large brush with a painting and just starting throwing in some color. I wanted to get an overall feel for the building. In a production environment, we call this a first pass. The reason for this process is so you do not waste your time on a material that you may not end up using. Just throw some quick materials together that represent what you want your building to look like and refine them later.
After the first pass, you move to the second pass. The second pass is much closer to a shippable asset, complete materials, blends, set dressing, and even collision and LODs, but there is still room for improvement if needed. The final pass is mostly just called "polish." Polish pass is all about pushing the asset as far as it can go.
Something you may notice in my screenshots is the white background; the reason for this is so I have a neutral background to work on. I did not want the materials and environment to affect my decisions at this point. If you start lighting the space too early or messing with the skybox, you may make some artistic choices that do not work well in all scenarios. When working in professional game development, you do not know if your assets will be used in dimly lit spaces or well-lit spaces or have some crazy color grading on top. The more neutral your space is at the start, the more flexible your assets will be across the game.
For me, the first pass is complete when you have all your materials applied (without blends) and your geometry is closer to what the final version will be. It's okay for some assets to be a bit further along than others. In this case, I started messing around with some roof geometry and added some detail to the wooden beams. Once I was happy with the first pass on the building, I started working on the ground. Originally, I wanted the terrain to just blend out to white, like a painting. Over time, I started to realize that it could look cool if I leaned on the idea of a floating island.
There is a piece made by artist Scott Homer from eleven years ago which I still look at for inspiration. This is such a perfect diorama because the scene is not a complex environment, but all the parts and how they break away and interact with each other are super interesting. This is what I wanted to do with my Tudor house. What if a giant piece of land was just ripped out of the ground and was hanging in the sky?
To realize this idea, I started building up my reference again and roughly blocking out the terrain. The references that came to mind were:
- Zelda Skyward Sword and Tears of the Kingdom
- Avatar
- Zhangjiajie National Forest Park in China
- Sinkholes and erosion along the coastline
I modeled a quick base to represent the island and started adding some parts that may have been around the building and how the movement may have caused damage. I started with an old, rickety fence and some overgrowth foliage. I also added in some small plant pots and other debris. I also removed my white background and added the default sky from UE5. At this point, I felt confident in what I wanted the final look to be, began working on the second pass, and eventually moved into the final/polish stage.
Modeling and Texturing Techniques Used Across the Scene
Understanding when something should and should not be modular is particularly important in games. A lot of students come out of school expecting modularity to be the most important way to make environments, and in some cases, it is. It depends on what you are trying to achieve and the limitations of the game engine you are working on. I have worked on video game projects where everything is modular, some video game projects where everything is bespoke, and even projects where there is a mixture of both. Something to consider is that not every studio uses Unreal Engine, and some studios, depending on how old they are, may just have a process they like and stick with it. In my decade in video games, I have only ever used unique game engines for each project; I have never used Unreal Engine, Unity, or CryEngine in a production environment, only for my portfolio.
In the case of this building, I have seen so many people approach the Tudor-style modular. It's a perfect use case because you can hide the seams underneath wooden pillars, and everything snaps together on a grid. For me, though, I'm only making one building; most of those pieces would only be used once or twice and would not really save me much time. I decided to just focus on making the building in three parts:
- Ground floor
- Upper floor
- Roof
This is honestly just another approach to modularity, not every wall piece needs to be a part. If I really wanted more buildings, I could make a new upper floor and ground floor, and now I can make four variants of the same building with just two extra parts. I could also stack the upper floor to make multiple floor levels. My point here is that with modularity, you can go as granular or as dense as you want. It really depends on what the end goal is and the project you are working on.
For the roof, I did make it more modular. The reason for this was the complexity of the roof tiles and the fact that there were broken sections on the roof. If I were to have more buildings, this would make my life a lot easier. I also made the windows, fences, and other detailed aspects of all the modular parts that snapped to the grid.
Making the Roof Tiles
This part of the project took up a significant amount of time. As I mentioned at the start, this project is not about making a cool art piece, it's about learning.
One of the most important aspects of making materials look realistic in games now is displacement. This means instead of just having a flat material and relying on a normal map, you add depth to the texture, and the material starts to cast shadows and affects the overall silhouette.
There are a few ways to create depth with your materials:
- Tessellation (this adds subdivisions to the model geometry and offsets them based on a Height Map)
- Parallax Occlusion Mapping, also known as POM (achieves depth by using a texture overlaying technique that adjusts based on camera angle)
- Normal Mapping Shadows, also known as NMS (normal maps only show highlights and lowlights on the depth of a material and do not cast shadows. This technique adds shadows based on the lights in the scene and fakes the depth)
- Just manually model the depth yourself in some software and import it in.
For this roof, I decided to try tessellation and manually modeling each tile to see what gave me the best results. I did not choose NMS or POM because they do not affect the overall silhouette. I like to think of it as tessellation pushing stuff out, while Parallax pushing stuff in.
For this material, I also decided to make the textures in Substance 3D Painter. I haven't tried making tiling textures in there so I figured this would be a great test to see how well this works. Usually, I just jump straight into Substance 3D Designer and noodle with nodes.
The first step was making the high-poly models of the tiles. When I'm working on a high-poly model, I mostly only focus on the macro details for overall shape and damage. I find that if you add too much micro detail, the baked normals compete too much with the texture normals you overlay on top.
As usual, I started by gathering some references for what I wanted and sculpting out a bunch of tiles in Blender.
For an asset like this, I sculpt out several tiles and then start scattering them around and adding some rotation and scaling for variation. You do not need to be too concerned with repetition because we will be overlaying tiling textures on top of these and adding dirt and grunge generators to break up the repetition. Below is the result: a high-poly set of roof tiles that will tile seamlessly in the x and y directions.
I kept the texturing in Substance 3D Painter relatively simple to start. I started out with a base terracotta, added some color variation and contrast, and then just layered in dirt and moss. I mostly relied on generator masks and tweaked a bunch of values. Just like before, I wasn't too concerned with making this look final but more about getting the process down and refining the material later.
Once this was complete, I could take my baked Height Map and generate the displacement version in Blender. The setup is super simple: You just subdivide the geometry, create a displacement using a texture and UV, and then optimize the geometry with a decimate.
You might be wondering why I wouldn't just do the displacement with a tessellation shader in UE5. The reason is that I want more control over the geometry. Eventually, I want damaged versions of the tiles, so I will need to make some of the tile's actual geometry so that I can set the dress. Another problem is something I commonly see in games. How do you create the end pieces on the roof? This is also a common issue with POM. You need to hide the ends.
The most common solution I see in games is a solid plank of wood on the ends of the roof. It's cheap, simple, and saves time. It does not fit the reference, though. Below is an example in Infinity Nikki, but this can be seen across so many games. There is nothing wrong with this, though; most players won't notice this and just be impressed with how cool the roof looks, even if the plank doesn't make sense.
I was happy with my progress with tesselation, so I wanted to see how it compares with modeling and hand-placing tiles. What's amazing about Blender is the ability to use a modifier stack, so everything is adjustable. I already made and sculpted my tiles for the high-poly tiling texture, and because of the Multires modifier, I still had the low-poly versions of those tiles. All I had to do was take a few of those tiles and lay them out on an individual UV map.
Another great time-saver I found in Substance 3D Painter was the ability to make a smart material out of the roof tiles I had already textured. This meant that as soon as I brought in my individual tiles, most of the texturing was already done for me. The material and all the mask generators will all respect the parameters I already set up.
Once all the tiles were complete, I brought them into Maya to start placing them. One thing I noticed straight away was how much cleaner the geometry was; the geometry was far more optimized than tessellation. I had far more control over breaking up the tiling repetition of the roof, and all those end pieces and damaged parts would have been much easier to make.
In the end, I decided to use the individual tiles rather than just tesselation for the final piece. The one main draw back with the individual tiles is that when creating lods, eventually, you will have to bake them down onto a single texture. At a certain distance, you won't need the depth, shadows, and silhouettes; all you will see is the material variation. The benefit of tessellation is that you don't need to do that; you can just keep removing geometry the farther you get away until, eventually, it's just a flat polygon with the tiling texture.
To finish off the roof, I created a material blend with three layers:
- Clean
- Dirty
- Mossy
I then added some supporting foliage from Megascans to support the reference.
Making the Most Out of Megascans
I really like working with Megascans because it allows me to focus on the areas in which I want to improve my skills. Megascans also helps me replicate more of my job in a games company. Studios these days have dedicated texture artists, foliage artists, or even teams of people they send out to scan their own stuff in the world. Essentially creating their own Megascans library. My main problem with Megascans is people don't know how to get the most use out of the assets.
A good starting point is how I adjusted the ivy. Quixel has some great assets called English ivy, but the leaves' colors did not look like the reference I wanted, and kind of looked too much like those fake house plants you get at the home decoration store. To fix this, I took the texture into Photoshop and removed all of the white and yellow to give me more of the lush green look I was going for. It's a super easy fix that totally changes the look of the ivy.
When creating the floating island part of the scene, I really wanted a bunch of roots hanging down like they ripped out of the ground. I found a cool asset called "Broom Creeper." This asset did exactly what I wanted, but using the same piece got extremely repetitious. The asset on the left of the image is directly from Megascans. The asset is a really big shape with lots of nice flow and direction, but being a big shape meant I couldn't break up the repetition too easily by just using the same asset. I opened this asset in Maya and created some new parts out of that single piece. Now, instead of just having one large root piece, Iinow had one large and four small ones to play around with.
This same exact technique was used for the floor. I found a piece I really liked with this castle floor, but the asset was huge and repetitious. I took the asset into Maya, chopped the asset up into individual tiles, and now I have five pieces instead of one, which I can place around in any order I want, plus I can scale and rotate tiles as much as I want to create more variation.
One other way I use Megascans is the Height Maps. They have an insane library of scanned materials with all of their raw height data. I UV unwrap my low poly model and then did the exact same thing I did with the roof tiles. Subdivide, displace, and then decimate. For the concrete topper and the actual chimney shoot I just used some rock brushes with a low intensity. What looks like a very complex asset is something that can be made in less than an hour.
Making the Wooden Assets in the Scene
As I've mentioned a few times in this breakdown, the whole purpose of this environment was to learn. I've used Substance 3D Designer a lot for concrete, metals, plaster, bricks, and other more manufactured-style materials. What I lacked was knowledge of organics, specifically wood.
I found this tutorial from Derk Elshof. The tutorial had exactly the kind of look I was going for. Very aged and raw-looking wood with lots of cracks and damage. I followed the tutorial exactly and then used everything I learned to craft my own wood based on the reference I had. I also made a more damaged and darkened version for the vertex blending. I won't go into too much detail because the tutorial does an excellent job already, and you should watch it. Once I had this material done, I could apply this material to all my wooden beams in the scene and vertex blend them in UE5.
For the windows and door, I was able to export the material into Substance 3D Painter with all my exposed parameters and create more bespoke assets while keeping the visual consistency of the wood across the building.
Starting with the door, I modeled and textured this as a 1:1 asset, meaning that it's not using tiling textures, and everything is in the same texture atlas. I started by creating a simple low poly of what I wanted and then started sculpting all of the details on top. Something I notice more often with artists lately is more of a reverse by starting with the high poly and then decimating the model down to get a low poly. Although this does work, I find this workflow is better suited for more organic shapes. For something like this door or window frames, there is no excuse not to have clean geometry with clean UVs.
For the materials, I just tackle them like any other prop. I load in my base material of wood and then start layering in details as they would in real life. Oil/grime, dirt, damaged wood, et cetera. I also used a color map to separate all of my materials, like the metal handle, metal rails, and wood beams. I also use a color map to separate the wood based on the direction they face in the UV channel. A pet peeve of mine is when artists don't respect the direction of wood grain in assets.
For speed, I rely on the generators and masks as much as possible, and then when I'm happy with the result, I start hand painting additional blends. This can mostly be seen on the lighter wood damage, which is blended around the base, and the dark grime builds up around the bolts.
Just like I did before with the roof tiles, I created a new smart material in Substance 3D Painter for the Wood and metal so I can make use of all the layers, masks, and parameters I have already set up. The one thing I did differently from the door was creating the windows as a kit instead of just sculpting every single window and baking and texturing every single one. This was a huge time saver and, from a production standpoint, a very optimized workflow because all windows will reference the exact same material.
Making Use of Detail Normals in the Scene
The easiest way to describe Detail Normal is that they are a normal map you overlay onto another normal map to add more detail. This detail can either be macro detail or micro detail.
Micro detail normals are when you tile the detail normal map multiple times to add the fiber details to some kind of fabric or the grain to the wood.
Macro detail is more of a 1:1 bake of an asset to add larger details to assets, like, in this case, the edge damage to a wood beam.
In this example, I created a trim sheet that tiles along the X-axis to soften the geo's hard edges and give the beams more of the aged damage look in the reference.
This same technique was used for the island. I did not want an extremely high poly model of the island, so I decimated my sculpt to a more reasonable amount of triangles and baked down a 1:1 normal map of the high poly. I then applied tiling textures of grass and mud on top. In the image below, the lower model is the raw geo with no detail normal and the upper is the version with the baked normal.
Making a detailed normal map setup is extremely simple. As mentioned before, it is just one normal map overlaying on top of another. The TexCoord node controls the tiling of the detail normal for micro detail normals, and the other parameter I add is an intensity control, which gets multiplied on top of the detail normal. This allows me to increase or decrease the effect of the detail normal in the event I want the normal map to be more subtle or intense.
Final Lighting & Composition of the Project
The final part of the project can always make or break your project. Bad lighting can make a good model look bad, and good lighting can make a bad model look great. This is also a similar way to look at composition. For the composition, I like to start off by creating a "Cine Camera Actor." You can read more about them here. They are essentially a camera in UE5 that acts like real-life cameras and can give you a 'cinematic look.' I tend to just fly around the scene, adjusting my camera focal length between 30mm and 50mm until I find something I like.
After doing some tweaking to the lighting and playing around with the camera settings I eventually landed on this shot.
The next step was working on the overall look and lighting of the scene. A good friend and lighting artist of mine suggested I look at some Ghibli movies and try to take inspiration from those. I skimmed through screenshots of several movies and eventually broke the ideas into four categories. The one that stood out to me the most was the far right for its saturated look, bright blue, and almost pure white clouds. I thought this would contrast well with the building.
I decided I needed two things to make this work:
- An almost clear blue skybox with very few clouds
- Some volumetric cloud assets that I have control over
For the skybox, I used Ultra Dynamic Sky. This skybox has an incredible amount of features you can tweak and adjust, and although I only really wanted a clear blue sky, it also helped me with the time of day, brightness and temp based on the sun angle.
For the volumetric clouds, I used Cloud Forge VDB. As much as I would have liked to learn to make my own volumetric clouds, the project would have likely taken a lot longer, and doing VFX-based work is not something that fits into my daily work tasks. This set of cloud assets did everything I needed and more to help finish off my scene.
Now that I had everything I wanted, I started pushing to the finish line. I pushed the blue really close to the Ghibli ref and adjusted my white values in the Post-Process Volume. For the cloud placement, I wanted to achieve two things: frame the building in the center and create a layer of cloud at the base of the building to create some layering and depth.
The very last thing I noticed was that the scene lacked life. It needed something dynamic moving through the space while also drawing attention to the buildings. I went into Maya and quickly threw together some bird models, posed them in a flying formation, and imported them in. Since I was just aiming for a still image, I didn't need them rigged and flying. I could just focus on the composition and placement.
Conclusion
One of the main takeaways I want other professionals and students to take from this scene is that a personal project does not always have to be some large-scale scene or giant environment. You can burn out on a personal project just as much as a work project. The key thing people need to keep in mind is to keep the goals achievable and know when and how to push a scene further if they want to. My original idea for this space was to just have a building and terrain that fades into white. Eventually, the scale and scope of the project got larger with the addition of the floating island, but I still kept the end goal achievable.
The other takeaway here is that even with ten years of experience, several shipped AAA titles, and working at some of the biggest companies in the industry, I'm still learning and will continue to do so. The gaming industry is forever changing, and the tech is constantly evolving. Keep your portfolio up to date and your knowledge relevant to the times.