OpenGL Screensaver

Welcome to my 3D screensaver page. I write these screensaver for fun and gain of knowledge. These screensavers are free to download. Hope you enjoy them.

Other than being beautiful, these screensavers have good educational values. They are good for math class computers. I have included some mathematics background about them in the settings.


Polyhedron. (408 KB) This screen saver is designed for computers with no 3D accelerator card. Any Windows computer 200 MHz or up and with 16 bit color or up (24 bit color recommended) will run this screensaver well.

This screen saver is compiled with VisualStudio 2005 and uses Win32 API for image rendering. I write functions for transformation, shading, perspective projection, surface reflection. It uses single buffering for efficiency and uses some tricks to prevent flickering. The code is actually more complex than that of the following screen saver.

PolyhedronOpenGL. (420 KB) This screensaver is designed for computers with 3D accelerator card that support OpenGL 1.1 or later. It has double objects in various configurations and has overlapping fading-in fading-out, as well as spot light refletions.

This screensaver is written in VisualStudio 2005 and uses OpenGL as rendering engine. If it takes long time to start and seems not moving on your computer screen, your computer does not have a suitable 3D card. In such a case, the above screen saver is recommended.

Source code for PolyhedronOpenGL screensaver is available under GNU General Public License. If you are interested in learning OpenGL, you may study files OpenGLWrapper.cpp and OpenGLWrapper.h. These files contains code for setting up OpenGL environment. The files also contain code on how to setup stencil buffer, double buffer, perspective projection, light, play list, texture mapping and many more. If you want to know how to implement screensaver callback functions for Windows, you may study files RPolyhedronScreenSaver.cpp and RPolyhedronScreenSaver.h. For configuration popup, you may study files Polyhedron.rc and RPolyHelper.cpp. You are welcome to modify or distribute this program under the same license terms. I would be happy to know if someone port this program to other platforms.

Kaleidoscope. (272 KB) The design of this screensaver is based on the working of real world kaleidoscope. It takes an image and turns the image into dazzling moving patterns. The image can be from a photo, a desktop or an internally generated one. Play with the settings and you will find many ways to set up the pattern. Any image you see on the screen generated by this screensaver will be captured and saved as a jpg file when you press the space bar on your keyboard. This program uses texture transformation extensively. A static image will be first displayed on the screen a few seconds after this screensaver starts, then a moving pattern kicks in. Be patient when watching it unfold.

This screensaver is written in VisualStudio 2005 and uses OpenGL as rendering engine. It requires a good computer with a good graphic card. Don't be surprized if it does not run on your computer. Get a better computer to run it.

Source code for Kaleidoscope screensaver is available under GNU General Public License. <\p>

My another hobby is photography. Here is my photo site.
I have a GPS receiver for tagging my photos. Here is a perl script I write to add GPS tags. This script needs exiftool installed on your computer. You also needs to install perl on your computer. The first time you use this script, it is better to read documentation by typing perl GpsTag.pl -h



Li Huo
[email protected]

Hosted by www.Geocities.ws

1 1