3D CLOCK by Eddie Hsu using OpenGL and GLUT
3D Clock is a clock that gives you a 3D feeling with the perspective
viewing, the lighting, and the 3D looking skin. The minute and hour hand
is formed with shadows of a spear in the center cast by two lights revolving
around the spear.
System Requirements:
3D accelerated card
with 64MB+
Implementation
Includes
smooth shading, planar projection shadows, setting and combining window regions, alpha blending,
texture mapping, stencil buffer test, animation, timer, lighting and materials, quadric primitives, and perspective.
Accomplishments /
Learnings
created a 3D looking skin window by setting window regions through interfacing windows.h with glut
glutTimerFunc(), glutIdleFunc(NULL) and glutVisibilityFunc() callbacks to use the
CPU only when necessary
planar projection shadows with alpha blending using the stencil buffer to eliminate
zfighting artifacts and double blending
reflections by drawing objects up-side down using alpha blending
ground lighting by alpha blending a lightmap texture
Aside from the learnings above, through researching methologies on implementations of several parts of the
project, some techniques I've read heavily about are: shadow volumes, shadow mapping, bump mapping,
light mapping, anti-aliasing, and soft shadow techniques.
References
Kilgard, Mark. “GDC Tutorial: Advanced OpenGL Game
Development, Reflections, Shadows,
Transparency, and Fog.” Game Developers Conference 2000. NVidia.
Chanma, Keshav. "Light Mapping – Theory and Implementation."
http://www.flipcode.com/articles/article_lightmapping.shtml
last accessed: March
6, 2004
Blythe, David. "Advanced Graphics Programming
Techniques Using OpenGL Siggraph
99' Course." 1999.
http://www.opengl.org/resources/tutorials/sig99/advanced99/notes/notes.html
last accessed: March
7, 2004