OceanView

 

What is OceanView?

OceanView is a project made by students taking the course TSBB51 Images and graphics given by the Department of Electrical Engineering at Linköping University. This course is part of the CDIO initiative. The purpose of the OceanView project was to simulate oceans graphically in a way suitable for flight simulators.

Members

The project group consisted of

  • Andreas Sievert, project manager
  • Björn Benderius, test and quality manager
  • Johannes Nilsson, implementation manager
  • Stefan Lindholm, design manager
  • Tomas Hektor, document manager
  • Veronica Gidén, requirements manager

Video and screenshots

A video demonstrating the OceanView application can be downloaded here. Screenshots from the finished product can be found here.

Download OceanView

The finished product can be downloaded here.

Code files and data structures

All code files, namespaces and data structures are available on this site.

 

 

Implementation

The project was split into two parts; a rendering part which should be easy to integrate into an existing flight simulator, and a test shell, used for testing and verifying the quality of the finished product. The programming languages used were C++, OpenGL and GLSL. The product has been tested in both Linux and Windows environments.

Waves are created on the GPU using the Gerstner model, which simulates the circular motion of particles on the water surface. In order to increase realism, additional characteristics of water are implemented, e.g. lighting effects, such as Fresnel reflection and transmission, and foam appearing on top of waves in stormy weather. Three different shaders are implemented in order to achieve different levels of detail. As for the water surface representation, the projected grid concept is used. This means that a grid which is uniform in image space is projected onto the water surface. This is carried out using a projector, resembling the camera but with some differences in position and field of view. Thus, each triangle covers approximately the same number of pixels on the screen, achieving optimal level of detail.

 

 

 


Updated on May 13'th 2007 by Veronica.