Homepage for AIS/PBA-Project  SS06

(programming: Michael Gubser, Lukas Novosad)

(artwork(external): Denny Compagnino, Lydia Novosad)

(CVS provided by Andreas Schmidt)

 


 

Water & Fire

 


 

Description/Goal:

The goal is to create a showroom for various graphical rendering techniques and physicaly-based animations. It should be possible

to toggle them on/off as desired.

 

Content:

 

      Advanced Image Synthesis components:

  • HDRR - High Dynamic Range Rendering. (postponed)
  • Bump Mapping using a Cg shader based on normal maps. (Michael Gubser, Lukas Novosad)
  • Caustics - Such as they appear on the ground of a  pool at daylight. (postponed)
  • Simulation of refraction and reflection on the water's surface (postponed)
  • Simulation of fire behaviour like tangling flames (postponed)

      Physically-based Animation components:

  • Particle effects such as dust, fire, fog or smoke. (Lukas Novosad)

  • Simulation of water using wave equations. (Michael Gubser)

  • Implementation of Collision Detection techniques. (cancelled)

 

Screenshots:

 

 

Features:

- mouse look

- arrow key movement (shift to strafe)

- take screenshot (s or S)

- bump mapping

- volumetric and procedural fire effect

- physically based simulation of waves

 

Libraries used:

corona -> http://corona.sourceforge.net/

Cg & arrays.h -> http://developer.nvidia.com/page/home.html

glh_* -> http://www.koders.com/

 

Techniques:

First we had to decide upon which shader technology to use and we decided to pick Cg since it provides a high level language for shader programming.

The fire effect is made out of several slices which are blended toghether; a perlin noise is used to create some turbulence in a procedural way; unfortunately this did not work,

e.g the frame rate was way too low. So for now, its just a volumetric flame.

Textures were created using photoshop with its large collection of brushes and effects.

The walls are bumped using normal maps which were created from the standard textures using Photoshop and NVIDIA's plugin.

The wave simulation is based on a superposition of several sine-waves.

The water bump effects are created using a normal map applied on each water fragment in tangent space and a specular light computation.
 

 

Requirements:

Besides the above mentioned libraries one also needs an up to date OpenGL installation and the gl utility kit GLUT in order to compile the project.

For running the executable a decent graphics card is needed which supports the latest shader technologies; although Cg is supposed to produce compatible shader programs

for the installed graphics hardware we have experienced some issues with this and had to search for the problems.

 

executable & sources:

executable -> Water&Fire.zip (16 Mb)

("better"  fire fragment shader for NVIDIA cards: cg_fireFP.cg)

sources -> Water&FireSrc.zip (60 Kb)

 


 

Some interesting links:

 

development & tutorials

http://www.gamedev.net/

http://nehe.gamedev.net

http://www.gamedev.net/reference/articles/article2108.asp

http://www.opengl.org/resources/code/samples/mjktips/caustics/

http://developer.nvidia.com/attach/6424

http://www.vterrain.org/Water/

http://www.ultimategameprogramming.com/demoDownload.php?category=OpenGL&page=9

http://www.lighthouse3d.com/opengl/glut/

http://www.realtimerendering.com

http://aviatrix3d.j3d.org/using/1.0/glsl_basic.html

http://www.shadertech.com/

 

wikipedia


http://en.wikipedia.org/wiki/High_dynamic_range_imaging

http://en.wikipedia.org/wiki/High_dynamic_range_rendering



demos & movies


http://www.daionet.gr.jp/~masa/rthdribl/

http://www.debevec.org/FiatLux/movie/



papers & projects


http://www.debevec.org

http://graphics.cs.ucf.edu/caustics/caustics.pdf

http://www.soe.ucsc.edu/classes/cmps260/Spring02/submit/dbrooks/causticWeb