Joe Garth shared some of the amazing workflow details, which helped him to fit scanned assets into the digital landscape.
Joe Garth shared some of the amazing workflow details, which helped him to fit scanned assets so naturally into the digital landscape.
With this scene my aim was to create a realistic snow landscape, as well as develop new graphical features for CRYENGINE V. I was inspired by the work of DICE on Star Wars: Battlefront, as well as the ice/snow levels of the original Crysis. For this project I was lucky enough to work directly with a talented CRYENGINE programmer Vladimir Kajalin. Vladimir is an expert rendering engineer who can quickly add engine features. During this project, I would identify artistic features required for a realistic scene and Vladimir would then have the difficult task of trying to make my feature requests a reality, while still maintaining performance.
Overall to develop this scene required two new CRYENGINE V features. A new terrain/object integration system which blends the terrain seamlessly into objects, and a modification to our decals that allows the ability to change the slope of the surface normal. These features will become available in future CRYENGINE releases.
Sense of Scale
When it comes to scale and realism, reference really is the key. I spent a lot of time just looking at various mountain/snow/arctic photography. They’re not always similar in lighting to the scene i’m building, but they help keep me headed in the right direction. Sometimes it’s better to find reference that hasn’t been color graded yet, that way you can grade it yourself (I prefer a more movie-like cinematic look, it’s reality but slightly more saturated/vibrant.). It’s important to get a feel for a material and it’s properties. Snow for instance isn’t 100% opaque, some of the light is absorbed but some bounces around inside, meaning there are rarely hard/harsh details. I often softened/blurred my terrain textures normals slightly to give the illusion of this scattering effect.
The rocks are all Megascans assets, these are some of the nicest scans I’ve had the pleasure to work with. They really elevate the quality and are good inspiration for environments of many different types.
It’s fairly simple to import Megascans assets into CRYENGINE. Megascans have a real-time option specifically designed for games. You can choose which PBR workflow your engine uses. CRYENGINE uses a Specular and Gloss workflow.
For rock assets like this PBR is actually very simple once you break it down. There are 4 texture maps required, Albedo with opacity in alpha, Normal with Gloss in alpha, Spec (which can simply a solid color) and for vegetation a Subsurface map.
Once you have these textures in place, it’s a matter of tweaking them to match real world PBR values.
You can read more about PBR in CRYENGINE here.
I’m using a new CRYENGINE feature developed by Vladimir Kajalin to integrate objects with the terrain.
The feature seamlessly blends the snow into the rocks without the hard edges that are prevalent in last generation games. With any luck these sort of next-gen features will become widely used in the future.
Another interesting feature I use is an addition to the decal material parameters. The parameter gives the artist the ability to change the slope of the surface normal. This means I can change the amount of snow that gathers on the rock, and the angle/direction of the snow.
This single huge scale decal projects a low frequency snow colored noise over the entire scene.
The normal maps of the terrain underneath conveniently still show through, allowing me to paint some interesting patterns- without worrying about clashing terrain materials.
The terrain was done entirely in CRYENGINE for this project. I wanted to see how far I could go without using a terrain generation program like World Machine or World Creator. In CRYENGINE there are some quite convincing noise parameters for the terrain sculpting tool, which I used to create some nice noise effects. In the end I put a huge decal over the top to give the snow a direction.
The lighting is actually very simple. I only use the sun to light the scene, no hand placed lights at all. It can be tricky to find settings that look good from all angles, and material properties have to be correctly setup to pull this off. It’s worth it though because it allows me to move the sun around freely without having to place lots of lights manually.
I use a single environment probe (cubemap) for all reflections in this scene.
I use CRYENGINE’s Voxel-Based Global Illumination feature to get a realistic light bounce from the sun. This is important as it lightens the shadows and creates some subtle gradients.
In the future I hope to work on more small projects like this, to improve both CRYENGINE and my own artistic workflows.