Adding Variation
Intro to Variation
Modularity and tiling textures play a huge role in the creation of environments for games, but with such rigorous modularity and repetitive textures it becomes incredibly difficult to make a more organic and naturalistic environment. With similar meshes duplicated numerous times throughout an environment it becomes robotic and repetitive. This abandoned theme park environment was dilapidated after years of misuse and as a result this game environment needed to be gritty and dirty, dotted with graffiti and stained in places. This is very difficult to do with just modularity and tiling textures, as it is difficult to create stand out areas using the same mesh over and over. This is where the importance of adding variation shines through. Fig 14.1 to 14.4 show the reuse of modular pieces and textures from the environment, and highlight how reuse can often look repetitive, uninteresting and and unrealistic.
The approach for combating this repetition in the abandoned amusement park was widely varied. In some cases a simple mesh alteration was needed, but some assets needed more specific attention. These approaches included layering materials, and projecting new textures onto their surface.
Variation Solution 01
Adding meshes
We have already briefly discussed the first method of adding variation within this abandoned amusement park - adding additional meshes. The simple insertion of additional meshes can dramatically break up a scene, and add a new level of complexity to an otherwise repetitive scene. We previously discussed how we can use additional meshes to solve edges of tiling textures, but another use for these additional meshes is to mask the repetition of the tiling texture. Using these bricks, as well as other meshes (grass, weeds, asphalt patches etc) we can hide any obvious repetition by simply covering the obvious areas.
Variation Solution 2
Altering mesh positions
Another approach used within this environment for adding variation is absurdly simplistic, but yields great results. Rare, one of the most influential game developers in the industry, say that "Everything has a story to tell"¹⁷ when describing their development pipeline for Sea of Thieves. They typically do this by adding "wonk", which in its simplest form is placing assets at a skew in order to emphasise the story behind the mesh. This is done by setting doors open slightly ajar, bricks out of place, or just placing meshes at varying angles. Drawing from this inspiration, I found implementing a similar approach in the abandoned theme park added life and realism to the scene with ease. Simply placing the concrete footpath flags at an angle, altering the position of each door in the lockers slightly, and disconnecting and damaging meshes like the handrails added so much more depth and variation to the scene.
This was very easily done with the use of Blueprint. Within Blueprint one can assemble meshes into modules (Previously discussed with the example of a locker). But changes can be made per instance. Hence, the creation of one single blueprint can be altered numerous times, and populate the scene differently.
Variation Solution 03
Vertex Painting
Another useful approach for adding variation to modular assets is the use of vertex painting. Vertex Painting is the application of colour to the vertex of a mesh, and can be done within Maya or Unreal Engine. This vertex colour can also be used as a mask. In this way we can set up a material with two very different texture sets and use the vertex colour painted on the mesh to switch between them. But as this method applies colour to each vertex it only works for meshes with a significant vertex count.
This is relatively common in games of this generation as it allows for much more variation. Again we can turn to Uncharted 4: A Thief's End¹⁸ for reference. Figure 17.1 shows a tiling stone texture wrapping around a cylindrical tower. The repetition of this stone texture is visually broken up by a patch of moss in the centre of the image. This patch of moss is created with the use of vertex painting, using the vertex colour as a mask to alternate between the stone and moss textures. Fig 17.2 shows a rough approximation of the vertex colouring on the mesh.
Needless to say, this approach is more costly in game, as it ultimately needs textures for two materials instead of one, but the result is phenomenal.
Vertex painting was used in a similar effect in the abandoned theme park. Various assets used this technique to alternate between textures, creating a variety of different looks. The first asset to benefit from vertex painting was the modular entrance buildings discussed previously. In an attempt to break up the repetitive nature of this asset, two texture sets were created - one clean (Fig 17.3) and one dirty (Fig 17.4), and vertex painting allowed for the conversion between the two.
Fig 17.3 - Clean material
Fig 17.4 - Dirty material
Fig 17.5 - Vertex paint material blending clean and dirty textures through red vertex colour.
Fig 17.6 - Material 1
Fig 17.7 - Vertex painting material 2
Fig 17.8 - Vertex colour alone
This approach for adding variation is very useful as it can be changed very quickly within the engine. The ability to paint only a portion of a mesh (Fig 17.8) gives virtually infinite possibilities to alter the look of this object as each instance of the mesh can be painted in a different place. While this approach does need two texture sets, it can dramatically change the look of multiple meshes and is obviously very beneficial when changing the look of multiple modular pieces that would otherwise look identical.
Variation Solution 4
Projecting Decals
The final solution for adding variation to modular meshes involved projecting decals onto the surface of each mesh. "Decals are unique (non-repeating) textures, such as in-game posters or signs that are applied to the surface of an object with a fixed proportion"¹⁹. In their simplest form a decal is similar to a transparent material (and can contain all of the same attributes) that can be projected onto a model to add variation. Decals were a pivotal part of the variation process in the abandoned theme park, and they were used in the form of graffiti, stains and dirt, and even just a variation to the normal of an object.
Each of the above decals was projected onto a multitude of meshes in the editor to add variation and interest to each asset, and helped to vary the repetition of modular meshes and tiling textures.
One major issue threatened the use of decals within the abandoned theme park. Differed decals are fully supported in Unreal Engine in their simplest form, but their simplest form is not very useful. By default Unreal Engine allows the use of Translucent Stain, and Emissive decals (Fig 18.27), but they are very faint (if visible at all) and they are not affected by lighting information. This was obviously not acceptable for most decals in the environment, so it was necessary to enable a dBuffer (Fig 18.28). Enabling dBuffer decals means that the engine can now "accumulate decal properties to a buffer before the base pass."²⁰ This means that these decals can "correctly affect lightmap and sky lighting, unlike regular decals."²¹ It also exposes the use of normal maps within decals, as well as altering the metallic and roughness values of the base material. This is unquestionably more impressive looking, but comes at a cost to the efficiency as an entire new prepass is necessary.
Fig 18.27 - dBuffer disabled
Fig 18.28 - dBuffer enabled
Fig 18.29 - Arcade before and after decal
Fig 18.29 - Confectionary before and after decal
Fig 18.29 - Barbe's Ice Cream before and after decal
Fig 18.29 - Entrance before and after decal
Fig 18.29 - Entrance before and after decal
Because dBuffer decals can affect the normal of the base material they are incredibly beneficial for altering the repetition of a tiling texture. The decal can act as a secondary normal map, and add a lot more variation to the surface of a material. An example of this alteration can be seen in the locker area, where deferred decals were used to create a more interesting undulation around specific objects.
Fig 18.30 - Normal Decal 01
Fig 18.30 - Normal Decal 02
Fig 18.30 - Normal Decal 03
Fig 18.30 - Normal Decal 04
The use of projected decals is undeniably beneficial when using strict modularity and tiling texture, and is essential for adding variation. When used collectively, modularity, tiling textures and the variation results discussed above can result in a huge variety of differing assets, while still running efficiently in game.
Once this issue was resolved, however, the benefits of differed decals became abundantly clear. below is a collection of assets from the scene before and after decals were applied, and the results speak for themselves (Hover over each image to visualise decals).
References
¹⁷ Rare Ltd (2016) Sea of thieves: Comic-con 2016 art of adventure panel. Available at: https://www.youtube.com/watch?v=ZAIhlMH4ztY (Accessed: 7 December 2016).
¹⁸ Naughty Dog and Sony Interactive Entertainment America LLC (2016), ‘Uncharted 4: A Thief’s End’, Video Game, Naughty Dog.
¹⁹ Salmond, M. (2016) Video Game Design: Principles and Practices From the Ground Up, pg 190, United Kingdom: Fairchild Books.
²⁰ Epic Games (2016) Unreal Engine 4.14.0 official in engine documentation, North Carolina, U.S, Epic Games
²¹ Epic Games (2016) Unreal Engine 4.14.0 official in engine documentation, North Carolina, U.S, Epic Games