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:
|
Physically-based Animation components:
|
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/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
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://graphics.cs.ucf.edu/caustics/caustics.pdf
http://www.soe.ucsc.edu/classes/cmps260/Spring02/submit/dbrooks/causticWeb