Generating the Terrain
- Curtis Parker - Project Lead/ Founder
Before I delve too far into things, note that this will be more of an overview of the planning and execution of the environment than a full on technical breakdown. While I will share some of these processes used, I wanted to focus primarily on the breakdown of why we chose to follow this pipeline, and how we handled different issues along the way.
SKIMP is set on a desert planet, but while we normally associate a desert with being devoid of life, I wanted to portray one overflowing with life adapted to living in such conditions. My biggest challenge for the project early on, and then again later down the pipeline was how to get a realistic large scale terrain on an alien world. It needed to feature dune seas, steppes, mesas, and a number of different biomes to make the planet feel alive. I am at this point only speaking in terms of large geological formations. The models, textures, and effects later down the pipeline would bring in the details and realism, but this was the big picture for the overall feel of the environment in SKIMP. Accurate erosion and sandstone formations were only able to be done on this scale through the usage of Worldmachine, Geoglyph, and Unreal Engine later down the pipeline. Below are some of the raw exports from Worldmachine, having not done any cleanup work yet.
The following shots below show a lot of the tech, and pipeline work behind the result. Including both the nodes for generating the terrain and splat maps for the landscape, as well as the setup for the tiling of the terrain in world composition within UE4. Two big hurdles I feel I should address which is why we ended up completely starting over the terrain was due to the tiling and splat maps. In order to level stream within UE4 properly we needed the landscape in 25 Tiles, composed of around 32 components each, if I remember correctly. You can see how they were set up in Unreal in the bottom right image. This was in order for the LOD's to operate as efficiently as possible, and reduce performance cost to a minimum. The final terrain was around 10km x 10km.
Secondly and in my opinion more importantly we quickly realized hand placing assets and foliage's across such a large map was near impossible with the number of people we had. Splat maps operated very similarly to an ID map used on a character but were instead used to define materials and the locations of assets across the map, which could then be adjust by hand later where needed. I believe I have 6 splats in these images, but it later became something more like 12 as I needed to specify various things. To put the scale in perspective, we have a character in SKIMP that is 10 around 30 meters tall, and he would look like and spec of dust in any of these images.
Materials and Textures
I went through about 3-4 iterations of landscape materials while working on this project, mostly due to an obsession with getting rocks to look as realistic as possible when blending from and asset to the landscape itself. I am certain I will more than likely update this again, once I make improvements. I found was that at a distance tile-able textures became really noticeable so I added a distance blend to alleviate the issue. Secondly tessellation made materials look astronomically more realistic but is a bombshell to performance, so I ended up tessellating the terrain based upon camera position in relation to world space. All the individual materials were functions so that they could be referenced within the master material and controlled by parameters.
The landscape textures I felt should be in a separate post from this but you will be able to find them in the making of section very soon! Most of our organic environment and hard surface assets, relying on combinations of ID maps generated using various smart masks within substance painter, and also heavily on curvature maps.
Honestly this process for someone who is normally a character modeler and texture artist was definitely a challenge. As the lead of SKIMP I was working on my own models and textures as well as doing production documents, breakdowns, terrain generation and material work, but it gave me a greater appreciation and understanding for tech art as a whole. I found myself actually enjoying solving the issues in the end, despite finding it extremely overwhelming early on. I also through no decision of my own became the pipeline TD, and was wearing a number of hats on the project just like many of our team members. I should also give a special thanks to Amanda Kessler, Kevin Johnson, Lloyd Quashie, Manuel Prada, Parrish Baker, Charles Shami and Aram Cookson for their critique and support with this aspect of the project.