Technical Art

I was in charge of solving a number of issues relating to our bird’s-eye camera.

  • Player occlusion.

    • The player would not be visible behind walls or trees. It also made interiors impossible (something we wanted).

  • Realistic buildings windows.

    • Windows in the city level were overly flat. I wanted to add depth to these structures.

  • Randomised weather effects.

    • Toggle-able rain and water affects.

Player Occlusion

The nature of our 3D environments and isometric camera meant that we needed a solution for the player going behind an object. I proposed a solution that worked by the following steps:

  1. The camera spring arm component (that attaches the camera to the player) was set to generate overlap events when passing over static meshes.

  2. When an overlap occurred, the material comprising it would mask out in a circle from the centre of the screen.

The material function masked out the centre of the material but blended this with positive values of the normal map. This meant that the edge of the mask always adopted the texture of the material itself.

Window Depth

I used three-dimensional cube maps to add depth to the city buildings.

Rain Surface Effect

My first pass at this effect was not performant. I had three raindrop textures I was rapidly lerping between in order to give the effect.

I reduced this to one 3D voroni noise texture that I panned in the -Z direction. This reduced my texture draw call to zero and had the benefit of giving me a nice smearing effect on the side of these assets.