Graphical representation of an ocean using 3D rendering and lighting techniques
As my bachelor’s thesis I focused on the study and development of the graphic techniques necessary for the representation of an ocean in a videogame. To do this, I have made use of my own graphic engine to which these functionalities have been incorporated using C++, OpenGL and GLSL.
I began by researching the wave algorithms, lighting techniques and optimisation methods most used in videogames. Then I selected and implemented some of them. The wave algorithms that I have developed have been those of Composite Waves, Gerstner and Tessendorf. While some more important lighting techniques implemented have been normal mapping, reflections and refractions.
Finally, an interface has been incorporated using ImGUI and ImPlot, that allows the user to modify and experiment in real time with the properties of the developed functionalities, facilitating the analysis of the results by displaying statistics of the application’s performance. With these statistics, comparisons have been made of the different techniques implemented with which the results and conclusions of the project have been drawn.
At the end of the following video, you can see the results of the project (audio in spanish):
Lastly, the following poster showing the summary of the work: