Whiteout is a simple project focused on rendering snow accumulation in the forest environment. It was written in C# using XNA 4.0 framework, DPSF particle library and LTree library.

Whiteout uses forward rendering with one point light source in the scene. The renderer provides dynamic shadows which are implemented using dual paraboloid shadow maps with PCF filtering. The snow accumulation for the terrain is created in a pixel shader using a randomly generated transition map between two ground detail textures. Transparent objects such as grass and tree leaves are rendered in two passes - first one for alpha testing and second one for alpha blending. Moreover, tree leaves alpha values are linearly interpolated with respect to the camera position to eliminate obsuring the view during scene exploration. The renderer incorporates simple linear fog to underline the scene depth. The sky is created using a simple skydome.

To provide the immersive viewer experience I created a simple character controller, which performs avatar movement with respect to the current camera direction i.e. the character forward is aligned with the camera forward, the backward with the camera backward etc.

A sample video can be downloaded here.

Feel free to give me a shout at panasiuk.marcin@gmail.com.