Tudor Gogan gave a breakdown of his beautiful Unity 5 scene, which boasts great lighting effects.
Tudor Gogan gave a breakdown of his beautiful Unity 5 scene, which boasts great lighting effects.
Introduction
I’m Tudor Gogan, a second year student at The Game Assembly in Malmö, Sweden. My primary subject of study is game & level design, but i spend much of my free time learning everything from modeling and sculpting to C# programming and environment design.
The main goal with this environment was to create a AAA environment piece for my portfolio, with focus on realism, lighting, composition, modularity and rapid-fire design. I chose to enforce a 24-hour deadline upon myself in order to challenge myself and make sure that I constantly focus on using big strokes, and not on details.
Terrain Creation in World Machine
Having a strong base shape to build the environment upon was an extremely important element for the creation of the environment. I spent 2 hours creating a heightmap and splatmap with the node-based workflow of World Machine.
I chose a V-formed valley shape since it helps frame the environment. This was especially important since i did not use trees or any other natural vertical props that otherwise frame typical environments. I started by creating a basic valley shape, added terracing and afterwards erosion in order to establish the shape of the terrain – the heightmap. Afterwards I used several height- and slope-based masks and selectors in combination with a red-green-blue gradient to create a splatmap. This map indicates where my terrain materials should be applied.
Those maps were imported into Unity, and implemented into a custom terrain shader which with some setup and variable tweaking handled the rest – applying materials according to the splatmap, Tessellation, LOD, terrain holes and some other minor features.
The materials were acquired from Megascans and had to be slightly tweaked. I inserted the gloss textures into the alpha channel of the metallic textures since the shaders required it and altered the albedos slightly in order to better fit with the colors of the props which i use.
I used Megascans to sort out the natural aspect of the environment. Five photoscanned 4-8k resolution rocks/assemblies were enough to create varied rocky parts and a pseudo-cave. An environment entirely made out of photoscanned rocks is, despite the detail, quite plain and dead, especially if i was to create some sort of story around the environment. I needed other, more story-filled assets that hooked the eye of the beholder.
Creating assets myself was never planned for this environment – I had neither the skill nor time to create something in 24 hours that would be comparable to photoscanned quality.
What I ended up doing was picking up several free assets from the “Blacksmith” and “Viking Village” environments found in the Unity Asset Store, and gave them quick visual upgrades. This work mostly consisted of simple things such as altering albedo textures, adding tiled detail textures, and replacing the standard Unity shaders with somewhat more advanced ones.
Here are some 3-step examples, the assets to the right being the final version. The wooden dragon head was one of the faster upgrades since it only required some albedo texture tweaking in addition to a tiled detail wood texture, around 15 minutes of work. The flag on the other hand, had one of the heavier and most time-consuming upgrades. I altered the albedo, added translucency, cloth physics and a script that simulates wind for the cloth – around 45 minutes of work.
Lighting and Post-processing
The lighting consists of a directional light, a few point lights around the eyes of the wooden dragons and some spotlights unique to some props in the environment. I chose to highlight the eyes of the dragons since it emphasizes them looking at the viewer – giving them a slightly more scary and awe-inspiring impression. The spotlights were used to lighten up props that felt too dark or too covered in fog.
Post-processing was an extremely important part of this environment in order to truly make it come alive. The post-process effects which are included in Unity3D out-of-the-box are quite disappointing in comparison to other engines – something that they lately seem to have started to improve. I have, in addition to Unity’s free post-process stack, chosen to invest in several custom solutions from the asset store:
- DeepSky Haze (Atmospheric Scattering & Fog)
- Filmic Tonemapping Deluxe (Tonemapping)
- Horizon Based Ambient Occlusion (HBAO)
- SE Natural Bloom & Dirty Lens (Bloom)
You can see the order and impact of the different post-process effects in the GIF down below. Something that won’t be visible is the Motion-blur, which I used for the purposes of the fly-through video. Without going into too much detail, i would say that the atmospheric fog, tonemapping and color grading made the biggest difference for the overall mood of the environment.
Disclaimer: GIF-format compresses the images down to 256 colors)
Conclusion
Unity3D has the rumor of being substantially inferior in terms of graphical features and can seem as an odd choice when aiming to create a realistic environment. One could definitely argue – and probably be right – about Unreal Engine 4 or CryEngine being superior in terms of graphical features. Those engines have chosen to specialize in AAA graphics, while Unity remains more of a jack-of-all-trades engine. Since the release of Unity 5 though, AAA graphics support has started to turn out pretty good! And it seems to keep improving, with features such as Vulkan support and Mixed Lighting modes coming for the upcoming 5.6 version.
This environment did require several custom shaders and post-process implementations though, and this is something that one should be aware of. Taking this environment to this level of visual quality with Unity’s out-of-the-box features would not have been possible, as it stands. Was it worth investing 300 dollars in total for the custom graphical solutions? For me, who will continue making environments in Unity, definitely. Especially since the developers keep improving their products, update them for future versions of Unity, and offer e-mail/forum support.
Download Link
You can play the environment on your own PC – download it here (658 MB). The recommended GPU specs are at least GeForce GTX 960/GTX 770 or AMD Radeon HD R9 280X for a 1920×1080 resolution.
I would like to thank Alexander Samuelsson, Polycount and the Unity subreddit for their awesome feedback.