Website powered by

Silva - TA

This project (2020) required a lot of optimizations to be able to run on Samsung S7 (Gear VR) and then on Pico G2 4k. I have compiled a few things that I have done to make it possible. I had an extensive use of RenderDoc, Memory Tracker and Unity Frame Debugger to get a sense off what was happening. I managed the production of the project and created it with a team of around 15 people (during a few months).

Recording of some part of the experience. Project first created with Unity 2019.3 (when shader graph released!) with URP. I have done the lighting for every scene and it's baked with Bakery.

All started with concepts created by Nicolas Hubert. The goals is to have a calm walk where people can relax. These gave a good idea of what the client direction was.

All started with concepts created by Nicolas Hubert. The goals is to have a calm walk where people can relax. These gave a good idea of what the client direction was.

Optimization for low end device was the job. Some assets where bought. All assets were optimized (textures, 3d models, VFX, anims). A lot of assets are merged to reduce draw calls. Channels of textures are used for roughness or metalness when necessary.

Uber Simple material showcase. Used on all static objects with baked lighting and with support of normal map in baked lighting. If there is a roughness it's stored in the alpha channel of the albedo.

Uber Simple shader where all the BRDF is redone to give more artistic freedom and quickly fix some assets colors/lighting. This also helped improve performance (5/10%). Thanks to Space Ape Games for the help and GGX fast specular math :).

Animated assets use simple dynamic lighting (lambert) and shader allows to change more the lighting & look of the asset. Remake the BRDF in shader graph was maybe not the best option since Unity changed completely Shader Graph after this version.

Foliage use a specific shader with baked lighting. They are animated with vertex animation with a mask stored in vertex alpha color. All cutout shader use a simpler shader that is only additive. Alpha-to-coverage is used to alias correctly the edges.

Skies have a specific shader that was created to quickly allow artistic authoring and animation.

Rivers are just a simple shader with a panning normal map. Only playing with reflection was enough to give the impression of water.

Terrain are made of only simple meshes with 3 different textures and 1 mask to blend them all. Normal map helps breaking the repetition.

Light shaft are pretty simple here also. A defined plane (to get smooth texture panning) with various mask to have something that looks nice.