Senior Environment Artis Robert Berg did a breakdown of his atmospheric UE4 forest scene: photoscanning, shaders and vertex paint, color balance and more!
My name is Robert Berg, I have been working as an artist in the game industry for 10 years now. I started out back in 2008 at Massive Entertainment, working on World in Conflict: Soviet Assault. Since then I have worked at Machine Games on Wolfenstein: The New Order and more recently at Fatshark working as Lead Environment Artist on the Warhammer Vermintide 1 & 2.
Right now I am working at DICE as a Level Artist on Battlefield V.
I would consider myself a generalist as I have done a bit of everything during my time in the industry, even worked as a character artist on some smaller projects. But my passion lies in Environment Art and all that entails. When given the choice I prefer to work with natural environments, rocks, vegetation and all that pretty stuff, which is also where the focus on my personal projects lies.
I started experimenting with scanning a few years ago using an iPhone app called 123D Catch, but it was not until last year when I found out that you can subscribe to Reality Capture on Steam that it turned into something that was actually viable to use for a real project. I started scanning some rocks and building a library while developing a good workflow, that allowed me to go from photos to complete game asset in as short a time as possible.
There seems to be this misconception that you need a super camera with 500 megapixels and 250+ images to do good photogrammetry for games. In my opinion, this is wrong, with the resolution realistically possible on today’s console, a good cell phone camera is enough to produce quality assets as long as you know what you are doing. And no you don’t need 250 images either, unless it is a very complex object, maybe. I have done good quality scans with as little as 12 images from my iPhone 7. Though going that low is perhaps a bit extreme. But keep in mind that fewer images are also faster to process so you don’t have to wait for hours to get results. As always, a nice balance is a way to go. What is important though, is making sure to capture every angle of an object so you don’t have to spend as much time cleaning up and filling in the blanks.
Some things to keep in mind is to always shoot in broad daylight and on an overcast day, that will reduce the amount of light cleanup that needs to be done.
Also make sure to get a camera app that lets you set things like shutter speed, white balance, and ISO manually. It’s also good if it allows you to save the images in a .raw format for better control, so you can adjust the images afterward if needed. I use Camera+ on the iPhone which I think works great!
Also, make sure you always have a plan with your scans, are you going to use the whole thing or are you just taking a small part of it? Are you making a tiling texture or a unique scan?
I usually run all my images through Lightroom to remove contrast and make sure they all are matching in exposure before I let Reality Capture work its magic. It’s a fantastic software that’s so easy to use. Just load images, click button, boom, done. 60% of the time it works every time!
While there is not a lot of modeling done on the scanned assets, I still had to model all the trees and undergrowth. For the pine trees, I modeled high poly branches that I baked down to a texture to be used for alpha cards.
Most of the undergrowth was photo-based with normals from Bitmap2Material by Allegorithmic. I use a blueboard to photograph the undergrowth then use the blue channel to create an alpha mask before running it through B2M.
For the trees, a lot of the believability comes from the structure and arrangement of the branches, which is where the big challenge lies when creating trees if you ask me. Here, as always, reference is king! I’ve spent countless hours just walking around in the wood taking pictures of trees and branches to use as a reference when building.
I usually model a set of base branches that I then use to model the complete tree, I cut my poly planes as close to the outline of the branch as possible to minimize the amount of wasted space. I find it is always better to spend a few extra triangles to remove empty areas, the less discarded pixels you have, the cheaper it is to render.
You often don’t need more than a few variations of branches, but here I went a bit overboard.
If these trees were to be made for a real game on the current gen consoles they would likely have to be optimized some, but I went more for looks than performance here.
I guess the star of the show here is the moss shader that is applied to just about every surface. It’s a combination of some simple tricks used to good effect. The most obvious one being the tessellation that gives it the thickness. I also apply a fresnel effect to the base color based on the surface normal, that brightens the glancing angles and combined with the tessellation gives it that fuzzy look that you see in thick moss. I have two different modes to the shader, one is manually painted with vertex colors inside Unreal Engine 4 and the other is a top-down blend that places it on every up facing surface.
As can be seen in the top-down video below, I also added a thin line of dirt to where the moss meets the rock. Totally unnecessary, but it makes me feel good knowing it’s there ?
I designed the shader as a stand-alone node so it is plug and play for use in any future projects.
This was the biggest challenge of all, I knew I wanted to make something dark and moody, but I also knew that it is a little bit of a gamble as dark environments can be very dependent on things like monitor calibration. What looks great on my screen might look pitch black on yours. I knew that making an environment this dark may not be appreciated by a lot of people, but it was my vision so it was a risk I had to take.
I constantly had to check my work on 3 different screens, to make sure I was not going to dark or too bright.
My main monitor is very bright, my laptop is very dark and my phone is somewhere in between. So that gave me a decent idea of how it would look in different situations, even though it was a bit of a hassle to constantly check it.
The lighting is very ambient with a rather weak directional sunlight and Distance Field Ambient Occlusion for those really deep shadows. I used Unreal’s Light Propagation Volumes for realtime GI and then a few omni fill lights that cast no specular reflection to brighten the areas that I wanted to highlight. I tried to capture the thickness of the air of a part of the forest that rarely sees daylight
Since I knew the darkness would not be to everyone’s taste, I did another pass on the scene a few weeks later, with a more cozy golden sunrise lighting. And let’s just say that the reception for that one was a lot warmer than the original, haha. Personally, I love them both, but for different reasons.
The key to making a forest is capturing the density of everything, there is literally plants and twigs and stuff everywhere. But I had to focus it in an interesting way, drawing your eyes to the path and keeping that relatively clear of noise and debris.
Suiting the Environment for a Game
I would love to make something along the lines of Ethan Carter or the more recent Book of the Dead Demo.
Ethan Carter was the game that originally inspired me to dig into Photogrammetry, and I think it looks great still despite being quite a few years old by now.
There is nothing used in the scene that can not be used in a real game, and of course, something would have to be tweaked and good LODs and billboards would be needed. That is something I never bothered with for this since performance was not one of my goals, I do enough of frame rate hunting at work to bother with it at home.
I had already spent a quite some time to build up my own library of scanned assets, so assembling this scene only took a few days, most of the time was spent on perfecting the moss shader that is heavily used in the scene as well as tweaking lighting and post-processing.
The creation of the assets was many hours stretched out over several months time.
But the fun part is that once you have built up a good base library, you can quickly create scenes like this just for fun.
I plan on expanding my library and continue to build small scenes like this, next up is a swamp of some kind with some more funky looking trees, so stay tuned! ?