Amazing art. I'm curious how the rocks manage to be such a natural part of the terrain! It really looks like they have been there for ages.
Great job and very inspiring! Thanks for sharing.
Frankly I do not understand why we talk about the past of this CEO. As a player I do not care about what he did or not until his games are good. As an Environmental Artist instead I see a game with a shaky graphics. It is completely without personality, emotion and involvement. It can hardly be considered acceptable especially for the 2019 platforms (which I understand will be the target of this game). Well, this is probably an indie group, with no experience facing a first game in the real market. And that's fine. Do the best you can that even if you fail, you will learn and do better. From a technical point of view the method you are using is very old. It can work but not as you are doing it. I bet you're using Unity, it's easy to see that since I see assets from their asset store. Break your landscapes more, they are too monotonous and contact real 3D artists and level designers. One last thing, the last screenshot is worse than all the previous ones. The lights are wrong and everything screams disaster. Avoid similar disasters in the future.
3d artist Theodor Gerhamn did a detailed breakdown of his fantastic scene, which combines realistic and artistic approach to 3d production.
My first intention when creating this environment in UE4 was to make a display for the vehicle that I had been working on. The vehicle is the South African Buffel which was used during the South African Border War (1966-1990). The reason for why I chose this vehicle was due to its clunky design and, frankly, boring paint job. I wanted to see if I could take the Buffel and make it feel more interesting through texture work.
Something I’m trying to do more often is to put anything I create in a situation or environment that tells a story or puts it into an example of its use. I believe that it sells your object a lot better and shows that you can handle multiple disciplines. I’m a big fan of clean studio renders, but environment pieces are often better at telling a story.
My initial thoughts were to render this in a clean studio environment to show off the work I had put into the textures. By adjusting my lights in a controlled area, I could more easily show the roughness variations, etc. But the results became a bit washed out and it didn’t achieve the feeling that I was looking for.
After talking to my good friend and 2D artist Johannes Palmblad, I decided to try an outdoor environment instead. Placing the vehicle in the South African savanna where I could use the warm colors from the sun and sand to interact with the vehicle alongside the cooler light from the Skylight.
The first scene block out was closer and a bit more intimate. But it didn’t really fit the aesthetic of an open savanna.
Johannes later provided me with a paintover of my scene to show the composition and storytelling that I could go for. This is where the turning point came. The scene now became more focused on the environment and story rather than on the actual vehicle and it opened up a lot of creativity and ideas!
Looking at the concept, the image ratio is wide. It has the vehicle being stuck in mud, which is our first point of interest in the composition. Then there are the two characters (second point) moving towards a burning area (third point). These were the points of interest that first drew me to the concept and that I wanted to keep in the final image.
In my final render, I moved the characters into the scene and added a red sign that would create a contrast to the green foliage. This sign warns the viewer and characters in the image that there is a minefield between their stuck vehicle and the camp in the distance that needs assistance. Adding this sign helped to tell a story. This now gave me 4 points of interest however, so I tried to place it close to the burning camp. This put the camp in between the sign and the characters to frame it. The vehicle is also pointing towards the camp to direct the viewer and further tell the story. UE4 has a inbuilt tool for the cinematic camera which can display a grid over your camera view to show the rule of thirds. This also came in handy for lining up the environment pieces.
For a long while, the scene was void of depth. Even if I had a guard tower far in the distance it felt more like a stage where the foreground was detailed, then there was a long empty space in between the foreground and background. I got some more depth into the image after breaking up the grass to create a road that subtly continues in the background and also adding the vista trees.
The landscape modeling and texturing was the first thing I started with when the composition was done. I knew that a lot of screen space would be used for those materials. The whole ground can be broken down into three parts: Landscape Tool, simple mud piles and ZBrush sculpted mud.
Most of the ground is created with the landscape tool with a 3-Way blend material where I could paint the sand, regular mud and mud with footprints textures.
I started off in Substance Designer by making some regular light beach sand, similar to the sand found in the savanna. The mud materials were based on the same Designer graph, but with some adjustments. After comments about seemingly similarities between the scene and Uncharted 4’s Madagascar level, I decided to do a bit of research to get some inspiration of how to create my textures. Through the Photo Mode on the PS4, I was able to capture some screenshots from the Madagascar level to try to see how they structured their landscape materials.
Naughty Dog did, as always, an incredible job with their textures and that really shows in the Madagascar level. The amount of color shifts, detail and blending is very nicely put together. What I saw from their texture work is that they have really cranked up the normal maps. They have also exaggerated the size of the stones and pebbles that make up the dirt structure. My first pass of my sand textures was a subtle sand with some height and color variations. But this resulted in a bland look in unreal, in comparison with the look in Substance Designer and Naughty Dog’s textures. After increasing the size of my different pebble generators, increasing the normal map strength and also multiplying the AO map with the albedo directly in the material editor, I got a more robust material with a higher definition in every texture.
Since I had already decided upon a camera angle and distance, I could adjust the textures accordingly to achieve the aesthetic look I was going for. Looking at the textures from above, the mud and mud w/ footsteps textures have an exaggerated color and gloss. This was so that I could get nicer breakup in colors and a reflections that were visible from my camera angle. The detail level of the albedo of the Mud is also lower than I usually create. But since a lot of it would be covered up by reflections of the sky and environment, I decided that I did not need to put too much time in it. If the scene would be a playable level, then more time and testing would be needed.
As with the mud, a lot of screen space is dedicated to the vegetation so it became a focus point as well. Creating vegetation is a bit uncommon for me and therefore was one of the things that I wanted to practice with this scene.
For the grass and smaller vegetation I used 4-5 types of grass with some more variations which I created in Maya with simple planes that I scattered around. The first piece of grass I started with was created in Substance Designer, where I could control properties of the grass to get the shape I was going for. A thin bladed grass that would look soft was my main goal. I created it using several Tile Samplers with different variants of a long grass strand that was being warped in different ways using the Directional Warp node. The strand that was being manipulated was simply created using the Shape node that I made very narrow to get the shape of a grass strand. To get the grass to only be displayed at the bottom of your texture, a mask can be used to limit the spawn of the grass. Multiplying two gradients, with some Levels to adjust strength, creates the mask in question. Just remember to adjust the Mask Map Threshold in the Tile Sampler. Otherwise, you will not see any results.
Just placing some planes for your vegetation in UE4 will probably end up looking flat. To avoid this I adjusted most of the normals on my vegetation, in Maya, to get a soft gradient. By rotating the normals of the vertices that touch the ground to face directly up, you will get a nicer transition from the ground to your grass mesh. I also used this method later to get some other meshes to seamlessly transition in the landscape. The vertices at the top, the ones that are close to the end of the strands, were rotated upwards. But this time I give them a slight outward rotation as well to match the direction of the strands. Crude example below.
The grass did create the fuzzy look that I was going for. Even if I used World Aligned Noise in UE4 as a mask for color variations, having only one type of vegetation looked stale. To get a more dynamic scene I needed more variants of vegetation with different shapes and colors. The Substance Designer grass was great for a simple background, but to get something more true to life I needed to use photo textures. I found some grass textures on the internet which were edited in Photoshop to give me a good mask. A super quick pass in Bitmap2Material gave me an OK Normal and Gloss map. I also utilized Megascans for one of the assets which I thought had a nice form and color.
Apart from adding different types of grass, I wanted to break up the ground where the foliage met the landscape. I’d like to avoid seams whenever possible. To do this I grabbed a texture of a sand dune with some small vegetation growing out of it. I then masked out the sand using Color Range in Photoshop to only get the vegetation.
Applying this to a circular mesh with a slight bend gave me the ability place the mesh more freely since the landscape was uneven and had small highs and lows.
Finally, I added a simple FuzzyShading function to give the vegetation a soft fresnel effect, similar to moss. The whole material setup is very basic, but it worked for this occasion.
As for the trees, I created a quick and simple tree in SpeedTree for the first composition that I had. The purpose for that tree was to frame the image in one of the corners. When I had changed the composition I wanted to portray the open savanna, which resulted in removing the tree. At the very end of the time I worked on the level, I added it again in the corner with such a rotation so that it would frame one side of the image, opening up the other which would draw the eye of the viewer. The trees in the background are just plain billboards. The images were sourced from Google, which I then manipulated in photoshop to fit my purpose. The initial idea was to just map the trees to simple planes, But to be able to rotate them slightly and catch the sunlight, I gave the planes some rounded shapes with adjusted normals, similar to the grass.
I decided that I could either spend a good day or two modeling trees that would barely be seen, or I could, frankly, get a nicer result by taking a quicker route.
The mud was achieved by blending the three materials in the landscape and a mesh with the same textures, but with Parallax Occlusion Mapping (POM) added. The POM feature is used to give the footsteps volume and depth. The footprints are from Jacob Norris ZBrush alpha pack, which I adjusted slightly to fit my material. Without the POM, the mud would look flatter and not as interesting. The same result could also be achieved with tessellation.
The image below illustrates the blending between the landscape when painted (left) and not painted (right) with the POM-mesh.
To get a smooth transition between my mesh and the landscape, I rotated the outer vertices normals to face upwards. Just like with the grass! This is not always a perfect method but usually works great!
The mud around the wheels were blocked out in Maya and then quickly ZBrushed. This mesh is barely visible in the image, so I focused on getting the shape to convey that the vehicle had been spinning in the mud to eventually getting stuck.
With these pieces in place, I carefully tweaked the placement and materials to make them blend nicely. I think what makes the mud sell well is the reflections. To get the reflections just right, I used the glossiness map from Substance Designer as a base to then manipulate it in the engine instead. Being able to tweak the parameter of the gloss and instantly see how it is being changed in the environment was key.
As mentioned previously, I was drawn to the Buffel as it looks so special with its clunky design and simple paint job.
Modeling the Buffel was both easy and hard at the same time. Getting a nice block out to start with is easy due to its big shapes that are easily identifiable. Taking the block out to the next step of a bit more defined shape was not too difficult either, but once the detailing on the engine and frame entered the picture, I started to scratch my head a lot. There are a few images on the internet of the vehicle but not too many from unique angles that would help me with the modeling. Images of how the vehicle’s engine and frame were often occluded. After a bit of research, I found out that the actual chassi of the buffel is the same as the Mercedes-Benz Unimog, which I knew there were CAD models of on the internet! Some websites even have a preview version of the models directly in the browser. So I looked a lot at one of those whilst modeling, which helped me tremendously! It always pays off doing research of the things you are going to model.
The trickiest part of the modeling process was to get the tires right. One simple trick I found for it was to model the pattern of the tire on a flat plane at first. After the pattern was laid out and had some good shading, I took that piece, duplicated a bunch of them and used the Bend deformer in Maya to match the size of the wheel. This was a lot easier approach to do the detailing as working on a rounded surface can make it hard to control your edge flow.
The texturing process was the thing I was looking forward to the most. My usual workflow when it comes to texturing is to start of by creating all of the materials I need in Substance Designer. Procedural, clean, materials with minimal dirt and damage are created first. This is also where I bake my normal, AO and other maps that I need. After that, I try some of Designer’s standard damage and dirt masks just to see if I need to create a second set of materials for the damage or if I can just adjust the current textures colors and roughness.
The next step is to throw the model into Substance Painter to add the dirt, damage, and detailing. I rarely use the existing masks that Painter has, since I like to paint it all by myself to get as much control as possible. If I use the masks or generator, I add a black mask over it and gently paint in the texture again in certain areas. I might not recommend hand painting everything yourself, if you are not really into texturing. It usually takes a longer time than necessary and the masks will work great a lot of the time. I just like to paint scratches, I guess.
While in Painter, I regularly export the textures to UE4 to see how the work-in-progress materials play in the scene. The scene is usually not finished by this point. But it is blocked out and I have an idea of the lighting and color range I want to go for.
To get the final touches on the Buffel, I used the Noise function in UE4 to create a world aligned mask to add some mud to the tires. The tires share the same UV space, but with the noise function I could get some unique dirt on them. Finally I added some decals to the car with a mask of splattered dirt. The decals proved to be useful for adding dirt to the windshields as it did not create any visible and ugly roughness transitions that you can commonly get when doing hard edged blends in PBR textures.
I love to tinker with the lighting in all of my projects and it is something I start to experiment during the block out. I believe that getting a block out of your lighting is as important as the level block out, when creating a scene. It’s important since you get an idea for where the light hits and what geometry can be highlighted to draw the viewer’s attention.
For this project, I wanted to have a strong and warm sunlight to hit the vehicle and put it as the main focus. The narrative of the image started with the vehicle being stuck and the viewer could then further explore the image to see the progression of the story.
I usually use the UItra Dynamic Sky plugin for UE4 when doing outdoor scenes. This plugin gives me the ability to easily shift the time of day, cloud properties and other useful things for getting your sky right. At the end, the sky became a bit cloudy as I did not want the sky to steal too much attention from the smoke in the background. But the plugin was great for blocking out my idea. I used Stationary lighting for both my directional and sky light. To make sure that certain parts of the model and texture popped a bit more, I also added some supporting lights around the vehicle.
The final piece was to make sure that the lighting would look good was to add the reflection capture that would show the reflections of the vehicle and the surrounding mud. In the beginning, I used the Sphere Reflection Capture which I placed between the camera and the vehicle. The reflections on the vehicle looked fine, but the glare on top of the wet mud on the righthand side of the image wasn’t there. It did not reflect the sky properly. So eventually I tried the Box Reflection Capture which proved to be just what I needed! The final touches went to adjusting and fine tuning the Capture Offset within the Reflection Capture.
I’m not sure if there is a certain way to create artistically beautiful environments or art in general, since art is so subjective. Even proved methods of composition and such might not work for the project you are working on. So I’d recommend to try many different things to see what suits your situation. That being said, there were some things I did during the project that I think helped me reach the look that I achieved.
Regularly check your values. When I was done for the day with the scene or had made a large step forward, I always took a screenshot of the scene and checked its grayscale values in Photoshop. Doing this, I could more easily spot if there was anything in the scene that did not fit with the rest. Were the points of interest standing out from the rest of the scene in any way? If not, then maybe I needed to tweak the lighting or textures of that object slightly to adjust their values. I wanted the scene to feel coherent. Whilst checking the values I also did a squint test. Squinting your eyes while looking at the image will blur the details and make it easier for you to identify any problems with your values and composition.
Post process tweaking is important as well. I have collected a bunch of LUTs over the years which I swap between and toggle on and off to see how the color grading is affecting my scene. Right before the end of a project I take several screenshots with different LUTs and arrange them in photoshop to compare. For this scene, I also added a slight film grain and chromatic aberration. I then capped the post process work with slightly adjusting the levels in photoshop.
Lastly I’d like to say that you should not be afraid to break a few rules or guidelines. A lot of us have this notion that getting your cool new 3D model to look as realistic as possible is the way to go. But I’d say that I’d rather break a few rules to make the image more interesting than having it being “correct”. There are a lot of info of the proper albedo values for certain materials, certain way to arrange your scenes, etc. But if you feel like your image is improved by bending the rules, then go ahead. However, It can be good to know when you are bending or breaking the rules. So have a good understanding of your field before doing so.