Back to main page

Simulation of Natural Effects for Marine Scenarios in Video Games

Shading / Unity URP - [2023]

Introduction

This project is my Final Degree Project, which was graded with the highest possible grade. Through it I built a technical demo with various special effects and their interactivity. During this project I learned a lot about how to structure all of them in the graphics pipeline, how to do GPU benchmarking and how to realise the harsh reality that ‘the interesting thing is never an effect, but the interactivity between the effects on screen’.

Ocean Shader

For the representation of the sea surface, I implemented the methodology described in Jerry Tessendorf's famous paper, ‘Simulating Ocean Water’ [2001]. This approach incorporates an oceanographic spectrum and Fourier analysis to create wavelets that closely replicate the behaviour of the ocean. I developed a series of shaders responsible for translating the displacement of the sea surface into textures. These textures are then processed in screen space, generating the realistic effect. This method not only demonstrates a commitment to technical accuracy, but also ensures the creation of stunning and authentic images, capturing the dynamic essence of the sea water.

Clouds Shader

In addition, for real-time volumetric cloud development, I applied the principles described by A. Schneider in his publication ,‘The Real-Time Volumetric Cloudscapes of Horizon: Zero Dawn’, presented at [SIGGRAPH 2015]. This approach focuses on the generation of realistic clouds using volumetric modelling techniques, which allows the creation of blizzard formations with extraordinary dynamism without compromising real-time performance. I developed a noise synthesiser (Worley, Perlin...), and various shaders to integrate this technique, optimising cloud rendering to be visually stunning and computationally efficient.

Final Implementation

Finally this is the look with all the effects implemented. In addition to the techniques explained in the previous sections, more components were added (Day-Night Cycle, Skybox, Weather, Buoyancy, Wind, Sail Effects...) that work on the interactivity and data connection between the different effects (hosted in the GPU) and the different game entities (that do their calculations in CPU).

Download

Below you will find links to the original files:

Back to main page