Apr 10, 2018

Greetings and welcome to development update 6!

We've worked more on improving the quality of the materials on the weapons. The goal was to give them a worn appearance, so they look like they've been actively used instead of brand new. The example used to illustrate this is the M1911A1, shown here to be wearing on the parts that would normally make the most contact with other materials when in use.

The MP-133 pump-action shotgun has been added to the game, shown here in synthetic furniture. We worked for a while to make sure the materials of the shotgun were as high quality as possible, and the shotgun itself is chambered in 12x70 and has a capacity for 4 rounds and one in the chamber.

We're working with an atmospheric scattering formula developed by T. Nishita to approximate a realistic atmosphere and sun. Mie scattering, the first part of the formula developed by T. Nishita, works to approximate the wavelengths of light from the sun into the atmosphere. Rayleigh scattering, the other part of the same formula, works to approximate the blue tones of our sky. The results in-game are shown below.

We've also been working on implementing realistic volumetric clouds. We wanted a dynamic solution which can account for any type of weather and time of day. We worked in this direction previously but didn't get a good looking result so we revisited the clouds. Our solution uses a few volume textures as a base building block and a weather lookup texture for the shader to create the clouds.

The most challenging part was achieving good quality lighting. We ended up having to ray trace through the volume for each voxel to simulate the light scattering at different density levels. It's an fairly expensive solution but nothing else attempted provided visually acceptable results. Right now we use a flat ambient term averaged from the sky for performance reasons which is a bad approximation of indirect light. In the future we'll find a better solution for example a 2nd order spherical harmonic.

A weather texture is used to change weather dynamically. In the future we'll be looking at implementing rain and weather effects. We change the lighting according to the cloud density and dynamically update the reflection IBL probes.