Hi, my name is Damian and I'm a 3D artist, to be specific I'm currently working as a lead environment artist for "One More Level". In my long adventure with 3D graphics I tried a lot of things. I'm not stranger to rigging, animation, character art and lighting. I also do a lot of shader work, mostly with tools like shader forge but I also try my best doing some light coding. What inspired me to take a part in neon challenge is an opportunity to learn and test new tools, improve on my workflow and possibly make the time I would spend in front of screen anyway more focused.
THE TRAIN - FINAL SUBMISSION
Creation of the whole scene took over a week, mostly of my free after work time.
Post Processing Stack
No third party meshes and textures were used, all assets visible in this scene were created for this particular project by me.
While creating this scene and assets there was no single source i took inspiration from. For example, final look of the train was somewhat influenced by K2-SO.
And the level itself, is a blend between industrial look slightly resembling what you see in Dishonored and that classic Scottish landscape often seen in movies and car commercials. In this case however, with a little bit more "alien" look.
At the very early stage I decided that mix of static and dynamic lighting will suit this scene in the best possible way, there are plenty of metallic surfaces that benefit form specular reflections created by dynamic light sources. This specific shiny look is hard to replicate with reflection probes due to limited resolution and amount of those you can place on scene. Early on, I also decided that I will go with progressive lightmapper, which is much faster in my case, but can't provide mixed lighting model, that gives certain advantages to standard baked lights. Especially mentioned specular reflection from light source itself. Dynamic lighting in scene is also necessary due to heavy instancing of some objects like train track segments, distant trees and some small rocks. Objects like that would be too heavy to lightmap especially when there are multiple levels of detail. Every object that is not lightmapped needs light probes to be lit in a proper way. This became tricky because area of level is fairly big.
Early light probe setup.
Distant trees lit only by light probes.
I faked spark emission with confidently placed point lights and color animated overtime.
Cookie texture applied to spotlights does great job faking soft shadows.
All assets in the scene were modeled with Blender. In most cases that includes not only low but also high poly mesh. I am big fan of zBrush, but it's great when you can do both modeling and sculpting in one package, it saved me a ton of time, not having to jump between aps.
Below you can see high poly version of terrain, before retopology (over 25 million triangles), easily sculptable in blender.
And here you can see already textured distant terrain mesh.
After getting it into Unity, I dressed it with procedurally generated rocks (Blender).
Generic asset creation can be really fast, especially thanks to PBR workflow and tools like substance Painter. I always keep all the geometry in a single .blend file and use a few python scripts to easily get everything to Unity and Substance. My favorite is called "Unity Tools" and it deals with rotations, making sure all objects won't be awkwardly flipped after export.
Another one is called "Texture Atlas" and it is included in a standard Blender installation by default. Very useful to unwrap multiple objects to single UV space. I keep all the elements separated for detail transfer in Substance, naming each relative high and low poly mesh the same, and then ading "_high" or "_low" suffix at the end so Substance can bake textures without any glitches. Very useful in places with closely overlapping surfaces.
Terrain and big flat surfaces use tileable textures procedurally generated with Substance Designer. I export them directly to Unity's project folder, which lets me check them in real time almost instantly after each update.
Big part of this scene is the Sky. In order to make it look fairly cool I decided to abandon procedural shader and paint it by myself. I believe it still lacks of detail and tonal range but it turned out to be better than expected, so after all I'm pleased :)
Sky dome is made of two separate layers. Outer layer with emissive material and static texture, and inner one. The second one contains semi transparent cloud image and thanks to a simple script it's constantly rotating to fake movement.
TIMELINE AND CINEMACHINE
Never before, I had an opportunity to test new cinematic tools in Unity. I worked with animation window and animation clips, but what I encounter opening Timeline really filled me with enthusiasm :) It took me a while to get used to new interface and functionality, but after some time using new tools animating stuff turned out to be a good fun.
For color grading purposes I used standard post processing stack. I experimented with all available options and achieved what I believe to be desired look. I was looking for that "easy for the eye" feel, lacking of extreme contrast and too saturated colors. What's worth to notice is that I changed color space from gamma to linear in player settings. This change alone can make huge impact on image quality, especially for more realistic scenes.
To get more filmic look, I started with reducing saturation and contrast. Default value felt a bit too strong for my taste.
I tweaked default AO settings to compensate for a large amount of dynamic lights that can't show prebaked shadowing. I also forced forward compatibility mode due to some problems with grass rendering.
Color grading track ball setup.
Color grading on/off comparison.
Thank you for reading, I hope that some of you found it interesting. if you have any questions please don't hesitate to contact me :)