Project

Simulation of water using opengl/jogl

Project (M.S., Computer Science)--California State University, Sacramento, 2018.

3D graphics programming is generally done using libraries such as OpenGL,
 DirectX and Vulkan. Some effects such as lighting, reflection have well defined
 approaches, however simulating water is known to be a little difficult to achieve.
 This project of simulating water uses Open Graphics Library (OpenGL), which is
 a collection of commands to create 2D and 3D graphics. GLSL is an example of shader
 language. Shader languages are intended to run on a GPU, in the context of graphics
 pipeline.
 Simulating water movement has been done taking help of different algorithms of
 physics for calculating velocity, position and force. The water waves are rendered by
 manipulating variables such as Points, Triangles and Normals, which are eventually sent
 to shaders for processing lighting effects, reflection and refraction in the rendered scene.
 The challenges of simulating water include dealing with different parameters such
 as reflection, refraction, color of the light and the placement of camera, so the more
 complex an object interacts with light, the more difficult to render it. Most graphics
 programming works by rendering the triangles and polygons to the screen by drawing them onto the buffer, like drawing on a canvas. But, for water to look realistic and convincing,
 it should exhibit reflection and refraction, which doesn’t always work nicely with triangle
 drawing models as water appearance is heavily dependent on the color of things around it.
 The goal of the project is to develop/implement reasonable, simple and repeatable
 approaches of simulating water using 3D Computer Graphics which would be practical,
 efficient and minimize imperfections in the final product. The result may have
 imperfections because of the known difficulties of simulating water, but the goal is to make
 the result as attractive as reasonably possible.

3D graphics programming is generally done using libraries such as OpenGL, DirectX and Vulkan. Some effects such as lighting, reflection have well defined approaches, however simulating water is known to be a little difficult to achieve. This project of simulating water uses Open Graphics Library (OpenGL), which is a collection of commands to create 2D and 3D graphics. GLSL is an example of shader language. Shader languages are intended to run on a GPU, in the context of graphics pipeline. Simulating water movement has been done taking help of different algorithms of physics for calculating velocity, position and force. The water waves are rendered by manipulating variables such as Points, Triangles and Normals, which are eventually sent to shaders for processing lighting effects, reflection and refraction in the rendered scene. The challenges of simulating water include dealing with different parameters such as reflection, refraction, color of the light and the placement of camera, so the more complex an object interacts with light, the more difficult to render it. Most graphics programming works by rendering the triangles and polygons to the screen by drawing them onto the buffer, like drawing on a canvas. But, for water to look realistic and convincing, it should exhibit reflection and refraction, which doesn’t always work nicely with triangle drawing models as water appearance is heavily dependent on the color of things around it. The goal of the project is to develop/implement reasonable, simple and repeatable approaches of simulating water using 3D Computer Graphics which would be practical, efficient and minimize imperfections in the final product. The result may have imperfections because of the known difficulties of simulating water, but the goal is to make the result as attractive as reasonably possible.

Relationships

Items