A downloadable game for Windows

Description

This project is another step in my journey as a graphics programmer. Through it, I aim to better understand some of the techniques used in modern graphics rendering, particularly when it comes to simulating water.

Currently, the project is using a simple sum of sines algorithm for generating the water waves, with a simple physically based render model, with ambient, diffuse and specular lighting, alongside a simple fresnel effect.

Right now it's also possible to control the camera position and rotation, in order to see how the lighting varies with the camera position, and the scene contains a simple UI where the current water generation and lighting parameters can be changed.

You can find this project's code in its repository here.

Future Work

In the near future, I'll be looking to complement this project with screen space reflections, and further experiment with wave generation techniques, namely using Gerstner Waves, different sine-based variations and lastly experimenting with integrating Fractional Brownian Motion.

Known issues

WebGL Build

Currently, the program is using StructuredBuffer to pass a variable number of Wave struct objects (generated with random parameters in a C# script) into the shader. As WebGL doesn't support StructuredBuffers as of now, I am unable to create a WebGL build, much to my dismay. I'll look into an alternative as soon as I can!

Water disappearing

As the enlarging of the water plane is done inside the vertex shader, it's necessary to look into this original plane in order to render the water. If, upon moving the camera, the water disappears, it means that the camera is no longer looking at this plane's position in the world, and nothing will be visible until the camera points at it again. In the future I plan to mitigate this issue.

Download

Download
WindowsBuild.zip 33 MB

Leave a comment

Log in with itch.io to leave a comment.