DEAD BODY FALLS
___
Dead Body Falls is a game sponsored by Samsung to showcase Gear VR devices. My main responsability was to achieve the best graphics running optimized on Samsung Galaxy S7 GearVR.
My roles as Technical Artist
Dynamic global lighting system (Unity C# and shader forge), lighting, trainings to artists, documentation, optimization.
Dynamic Real-Time Lighting Optimized for Mobile VR, from Scratch
The rendering technology created for Dead Body Falls is a step further of ANGEST. In ANGEST we achieve cheap dynamic lights by lerping two baked lightmaps, using colored texture fog solutions given sensation of volumetric fog and post effects.
In Dead body falls we improved these solutions and create new cheap visual features such as reflections, specular affected by normal map, emissive light and dynamic point light.
Since the platform is mobile VR, we face several hardware limitations and we had to be very smart using per-pixel mathematics calculations.
We were not able to use dynamic built-in Unity lighting solutions. So, I did all dinamic lighting from scratch, using shader forge and C#. For static lighting we use Unity baked lights system (lightmap). Below you can check the solutions based on specific needs given by the art direction.
Shading and Rendering Controller
1 - We decided to create just one shader containing every needed visual feature in one pass. With the art director, I created our main shader in shader forge that include all the visual characteristics of the game taking care to benchmark each feature in our minimum aspect target device (Samsung S7 Gear VR).
2 - Then, exposed all important variables in a script allowing to be controlled in the inspector, taking care to create something easy to use and understand. Working with game play programmers to store the data in a scriptable object to store and call the visuals on especific moments of the game.
3 - Then, I mentored 3D artists and technical artists to use it, enabling them to implement the lighting in all the scenes.
4- Then, I helped our graphic programmers to remove the shader's forge garbage, optimizing it and giving maintenance until the end of the project.
The goal is to take the ANGEST lessons and take a step further, with better lighting, reflections, and VFX. Below is the first graphics benchmark.
Shader Features
Diffuse and Normal
Fog
Our fog uses conventional linear fog math, but its colors is taken from a RGB texture color. A channel is used to multiplies its intensity. Allwing to give areas of interest and a volumetric fog sensations
VHS Filter
Filter made by a RGBA texture using screen position as UV. The tile and offset of each channel is independent, allowing us to create lot of filters and effect.
We had a problems of too many sample of texture when using RGBA, so we decided work with just 2 channels per scene.
Reflexivity
Here I used a small alpha texture that change its mipmap by slider giving so the sensation of smoothness control.
Emissive light
I use the RGB vertex color channel to mask emissions, limitating us to 3 color's emissions per scene. For complexes emissions, I use the alpha channel of the texture.
Word Positioned Spherical Mask
Dual Lightmap for Baked Light
Just 2 lerps between lightms. allowing us to changing totally the mood of an environment, dynamically.
Lighting Integration
The game have 12 environments with a total of 30 different moods. After proper trainings, the lighting was integrated by a team of 6 people: me and more two technical artists, the art director and two 3D artists.