CSC473 - Advanced Rendering Techniques

Final Project – Bryan Clevenger

March 19, 2010

GLSL Shaders

 

Overview:

This program combines several different GLSL Shaders on relatively simple OpenGL, Glu, and Glut primitives. The program itself provides standard first person camera controls. Scenes are selected by choosing the appropriate number key.

 

Scene 1:

   3 Primitives – A quad, a cube, and a sphere.

       Plane – Light Map & Color Map

       Cube – Light Map, Color Map, & Bump Map

Purpose: Demonstrate using textures to determine shadows, and modification of normals on a flat polygon.

 

scene1.png

 

 

Scene 2:

Environment Mapped Reflection – Uses 6 textures in a texture cube to look up reflection value.

scene3.png

 

 

Scene 3:

X-Ray Shader – Shows falloff given distance from camera, normal direction. Allows seeing inside of otherwise solid geometry.

scene4.png

 

 

Scene 4:

Cartoon Shader – Adds “cartoon” shading to general geometry, exaggerating colors to produce flat specular and diffuse values.

scene5.png

 

 

Scene 5:

Alpha Mapped Teapot – Uses a texture to determine alpha mapping, allowing for “wirey” objects that are otherwise solid geometry.

scene5.png

 

 

Scene 5.5:

Alpha Mapped Sphere – Uses a texture to determine alpha mapping, allowing for “wirey” objects that are otherwise solid geometry.

scene5.png

 

 

Scene 6:

Displacement Mapped, Environment Mapped Sphere – Combines environment mapping with displacement mapping to create a dynamically changing amorphous blob.

scene5.png

 

Scene 6.5:

Displacement Mapped, Environment Mapped Teapot – Combines environment mapping with displacement mapping to create a dynamically changing amorphous teapot.

scene5.png

 

References:

   http://ozone3d.net

   http://nehe.gamedev.net/

   http://gpwiki.org/index.php/OpenGL:Tutorials:GLSL_Bump_Mapping

   http://www.terathon.com/code/tangent.html