Having great fun diving into Blueprints and adding some basic game-play functionality to the Antique Shop scene. A lot of optimization had to be done but right now it runs 40fps in 4K.
Having great fun diving into Blueprints and adding some basic game-play functionality to the Antique Shop scene. A lot of optimization had to be done but right now it runs 40fps in 4K.
Lately, I got caught up experimenting with photogrammetry. It's a really fun process gathering the right dataset for scanning in Reality Capture.
The Wooden Horse asset is retopologized in ZBrush using ZRemesher, and the material is done in Substance 3D Painter.
Its a humble beginning building a small asset library on Sketchfab.
The additional assets are from my Antique Shop scene and Quixel Megascans.
I went through my hard drive to make some space and found an old commission work I did around 2009 for an iPhone RPG project. Never shown any of the work I decided to create a small scene for these assets. First idea was to just take a nice screenshot from Maya and call it a day. But as I started doing so I wanted to do more. So I started putting them into Unreal 5.
They are of course very outdated. No normal, roughness, or spec maps. But it was quiet fun and challenging at the time to work on these buildings. The budget was 140 tris per building. It was super limiting but fun to come up with different silhouettes and styles for these assets.
Most of the assets in Maya as I found them
140 tris per Building or Ship. Quite challenging but fun to come up with different styles and silhouettes. In retrospect I would have used more alpha textures especially for some of the ruined assets.
I just selected all objects in Maya and exported the selection as an FBX file with embedded Media. Import to Unreal created the materials with the correct texture assigned. Pretty straight forward process to get these old assets imported with just a few mouse clicks.
Idea
The main idea for this scene comes from a photo of a lonely, desolate Scottish landscape I saw a few years ago. For quite a while I had this Scottish scene in my mind and the idea to recreate such a scene as a real-time game environment. When I saw the Polycount community was starting the ”The Escape” challenge.
The Polycount challenge was to create either an escape scene, a character or both. There was no restriction in the type of setting or technical limitations such as poly count or texture resolution. It only had to run in real time in a game engine. The challenge was to run for three months which sounded like the perfect amount of time for me to be able to finish my plans for the environment. I used the Free Cry Engine SDK as it is a powerful tool especially to render large landscapes and vegetation in high quality.
Beginning
I started my work by looking for reference images. This was important for me to get a better idea of what I wanted to create in detail. It also helped me to figure out what elements I needed for my scene to achieve the most interesting and detailed result in the given time.
As I searched for reference material my general ideas got much more defined. Relatively quickly I decided to add the road to the horizon as one of the key elements in the scene. This would show ”The Escape” in my work, as it was central to the Polycount challenge. At this point I wanted the landscape itself as a whole to be the focus for the viewer. They should look at the image and should be guided to the horizon, the destination for the escape. This would match the challenge rules and make the image interesting and more meaningful. I didn’t wanted to tell a story that was too obvious initially to the viewer,they should think to themselves about what had happened here. I decided to add several “evacuation” props to the scene and abandoned luggage onto the street to make it clear that people passed this area to escape a disaster. What this disaster was or where all the people had gone to was something I wanted the viewer to think about.
Final node graph I created in “World Machine”. The brown node in the middle is the “Erosion” node which generates the realistic, weathered look of the terrain.
Terrain creation in “World Machine”
It is a complex and time consuming task to paint a realistic looking terrain to fulfill all requirements I had in mind. Areas for streets or buildings need to be considered and later the terrain adjusted to this. However, to sculpt a terrain can easily lead to build unrealistic shapes or proportions.
I decided to create my scene the other way around. This meant that the road had to follow the existing landscape shapes instead of creating the terrain around the road. With this approach I gave away some freedom and control but on the other hand I found the results were way more realistic and believable. A landscape consist of a large number of different organic shapes. The different materials present such as hard or soft rocks behave differently to the weather and the erosion. They so form a unique look of the terrain. Water flows down forms valleys and erodes the lighter parts such as dirt and soil.
To achieve this realistic weathered look I picked the terrain generator tool “World Machine 2.0” from Stephen Schmitt. This tool contains very powerful erosion tools to mimic the behavior of weathered terrains. “World Machine'' is a node based program which makes it easy and efficient to play around with all kinds of different looking terrains. The “Erosion” node adds the weathering effect on top of a terrain. At first I generated a terrain roughly fitting my ideas and finally added the erosion effect to give the terrain the realistic look.
Base terrain rendered in “World Machine”
After the terrain was imported into Cry Engine you get a nice source of inspiration and find interesting spots on the terrain. I jumped into the game mode several times and walked through the landscape, to get the best feeling for how the landscape would work from the player´s perspective and which areas are best to start working with (The Free Cry Engine SDK also provides several already functional vehicles to drive through the environment which could be a great fun!).
“World Machine” terrain imported into Cry Engine. I used a 16 bit height map in the “pgm” file format and the terrain color texture as a 8 bit “bmp” file.
Terrain textures
After I imported the terrain into Cry Engine some close up details for the different materials on the landscape like rocks, mud or grass, etc. were needed to embellish the scene At first the terrain was covered with a gray “checker” texture.
The terrain material textures work more or less like detail textures. They get blended together with the color of the terrain and should contain as less color information as possible. The detail texture fades out in the distance to improve performance. Only the terrain color is then visible on the terrain. To avoid a bad transition between the close areas use the detail textures and the areas far in the background, the textures shouldn't contain too much color or light information. I desaturated the diffuse textures to get an even and good tiling pattern for the terrain.
Terrain textures diffuse-, normal- and specular map. Note the strong contrast in the specular maps for nice detailed highlights and slightly wet look of the materials.
In order to add detail and structure while also saving texture memory and time, I used the same textures with different material setups in the Cry Engine. For the grass texture I created a material with strong normal map details, and another material without. In order to have more variation and less repetitive pattern effects on the terrain I switched between those two materials while painting the grass to the terrain. I made three different materials for the rocks; one for large scale distant rocks, one mid-distance material for the average sized rocks and finally a much smaller scaled version for close up details. For the distant rock material I also used a non uniform scaling to get more direction into the material and onto the terrain. Using these three rock materials in a clever way, it is possible to achieve organic rock surfaces while just using one single texture.
Road
Another important part for my scene is the road. Before I started working on smaller elements like plants, rocks, buildings etc. I needed a base road as it was fundamental for the look and composition of my scene. Firstly, I picked an area on the terrain where I found the details of the landscape came out very nicely. I then needed to adjust my terrain at this point to create a valley for the road into the terrain. For this I used the terrain tools of the Cry Engine to rise and lower parts until I was satisfied with the rough shapes.
Looking at some of my reference photos I noticed that the roads do not usually take the shortest route, but the easiest path. These roads historically developed from small shepherd pathways into actual streets while still keeping the old and natural shape. This makes them fit so well into the landscape.
The Cry Engine provides a handy road tool that I used to create the street. This tool simply generates a “spline” path with just a few clicks directly on the terrain surface. I created a path following the given “natural” shapes of the generated landscape as much as possible to mimic those typical organic streets. I had to raise or lower several parts of the terrain gently again to get a nice path for the road and to help the terrain to came out even bit more naturally. When I was happy with the path for the street I used the “Align Height Map” function which adjusts the terrain to the generated road path and creates a very nice road fitted onto the terrain.
Road tool in Cry Engine to generate the street. Using the given topology of the terrain to fit the road onto the terrain.
Vegetation
Firstly I worked on the grass patches which are the most important vegetation element. To achieve the best quality I created several high poly grass models and rendered the diffuse map, normal map, and alpha map to a texture for the use on a simple plane object in the engine. The big benefit using high poly vegetation renders instead of a simple photo texture is the much cleaner alpha map and the rich and accurate normal map.
Rendered grass texture using a high poly meshes I created in 3ds max.
Several grass patches using the grass textures I rendered from high poly meshes.
Props
The scene also needed some traffic signs and buildings to put more man made elements into the landscape. I think those elements really make the feeling of a lonely abandoned scene even stronger because although there are no humans shown in the images, some people were clearly living or passing through this area. What could have happened to them?
As well as creating generic assets like different shaped rocks and stones, I created a number of props to help the human story telling in the scene. I added suitcases, shoes and medical boxes to put more items you usual wouldn't expect laying around on a street. Some barrier assets like the barbed wire and the tank trap were also made. For most of these objects I created a high poly mesh and baked the details into the low poly version I used in the Cry Engine. For some items, such as the shoes, I just created a low poly mesh as I was short on time. As these were further away from the camera, the lack of detail didn't matter as much.
Props I created to populate the scene. The medical box adds bit of color to the scene.
The little bird is my favorite detail in this scene. Even though it's a very small element and only visible on the second or third view.
The little bird was fun to model. It also adds some live and color to the scene.
Composition
After combining the parts for my scene, I focused on the composition of the whole landscape. The road, and its destination on the horizon already dictated the composition but of the image however there was still a lot of room for improvement. At this point it was very helpful that I got feedback from a number of sources. Firstly from the Polycount community where my work was reviewed in the forums and of course also from friends I showed my work to. It is very important to get an outside opinion, as other people will look at what you have created with a fresh eye. It's very easy to lose overview of your work once you've been working on it for a while. A good tip I realize is to take a screen shot of the scene and flip it in Photoshop to get a new perspective on the image. Also a rough over paint is a very efficient way to try out different elements and moods quickly instead of changing a lot of parameters in the engine again and again.
Over paint to improve the scenes composition. Top: original screen shot, bottom: over paint in Photoshop.
Once again I reminded myself that the main focus of the image was the road and its destination at the horizon. To reach this goal I used several elements to frame the image better. Trees and telegraph poles are used to frame the image while also adding silhouette detail. To lead the eye of the viewer to the horizon I expanded the “V” shape of the valley. For my second shot I put the little bird on top of a pole in the silhouette to show this specific element as a more important part of this scene.
I felt that the small details on the road should not attract the viewer’s attention too strongly,while it should be visible at the second glance to give an idea that something had happened here. To achieve this I kept the colors of these items closer to that of the road itself.
Lighting
A typical scene of a Scottish landscape would usually be misty or at least cloudy. I wanted to get close to this look, but also I wanted to add a warm light to the scene. I felt that it should look a bit wet like after a rain and when the first warm light beams break through the clouds. This would help to increase the contrast of the story I was telling. There should be signs of “hope” visible in this depopulated and overcast scene. I added a relatively strong and bright fog to achieve a misty look. This also helped a lot to separate the different layers of hills in the background of my scene and give it additional depth.
The main light in the scene was obviously the sun. I set the sun color to a de saturated but bright yellow to get a slightly warm tint to the scene. A strong yellow light in the focal point of the image, the horizon, helped to emphasize this section of the image and also helped me to get some nice rim lighting to pick out and separate the different elements and make them more visible. To achieve the final layer of quality I used color grading to adjust the image inside the Cry engine. I added red tones and contrast in order to match the reference photos I had used more closely.
Left without, right with color grading enabled. More contrast and red tones added to the image
Summary
In the beginning I had planned to include a lot more objects such as a stone wall, cars and a castle in the left of the background. I had included more and more ideas that I had in mind during my research. However, considering the time, I found that the more the idea and the scene matured in the planning and development process, the less unique elements were left in the scene. The time I had for the scene itself was only approximately 3 months. I also found that having too many elements meant that they started to compete with each other for attention on the screen. So, I stepped back a bit and removed one element after another until the right balance for this scene was found.
Early state of the scene. The castle was cut later because it took to much attention away from the road and landscape I wanted to bring more into focus.
The Final shot of the Scottish landscape scene.