logo.jpg (7978 bytes)

wpe1E.jpg (1966 bytes)

These projects were made in Visual C++ 6.0 using NeHe's base code, unless otherwise noted.
I haven't tried them on other computers, but I am running a Celeron 400 with a GeForce 2 MX400.

To Compile, the following library modules would need to be added in the project settings under the Link tab: dinput8.lib dxguid.lib opengl32.lib glu32.lib glaux.lib

Feel free to reuse any code and don't hesitate to ask me any questions.
Height Mapping
I was thinking about height mapping after looking at a few examples and came up with this simple program. Most height mapping techniques are based on how I did this.

I basically modified a bitmap loading function, and used the average of the RGB colors to determine the height. You can convert the image to grey scale to make things easier to visualize.

Note: this only works with 24-bit bitmaps, but would be simple enough to modify for 8-bit grey scale images.

Download source and executable here [54kB]

wpe7.jpg (6763 bytes)
Iterated Function Systems
After reading some things on the chaos theory and fractals, I made a few projects demonstrating Iterated Function Systems. These form the basis of fractal images.

They are extremely simple implementation wise. Though the mandlebrot set which has a very simple function definition is supposed to be one of the most complex mathematical objects.

The examples are as follows:

  • Sierpinski Gasket
  • Gingerbread man
  • Fern
  • von Koch Snowflake
  • Mandelbrot Set

For details on each of these, read the header of the source code.

Download source and executables here [66kB]

Sierpinski Gasket
Fern
Nodemaster
This was my first OpenGL project for my computer graphics class at uni. The program uses GLUT for window initialization, etc. and because of this it can be run and compiled on multiple platforms (Tested on a SPARC system). I compiled this program using cygwin - a free UNIX environment for windows compiler. I scored a mark of 78%.

It is a basic vector type editor - you can choose different objects to draw and link tham with lines and arrows. You can also save and load in a file format created by me. The program allows you to zoom in (Z key) and out (X key). There are a bunch of other commands which can be accessed via the mouse right-button menu.

The source code is fully commented, though not the most elegant programming in the world.

Try the program out, select load from the menu by right-clicking and enter sample.dat in the console window and zoom in.

Download source and executable here [94kB]
You will need cygwin1.dll [586kB] and glut32.dll [232kB] to run the program.
To compile in cygwin, just type 'make' to use the makefile.

Nodemaster
Blobbyman
Along came my second OpenGL project for my computer graphics class. This program again uses GLUT and cygwin, but I was unable to get it to run on the SPARC system due to different endians. This project was the top in the class by far, but still not good enough for full marks, though I did get 98%. This project also is at the top of the 'hall of fame' on the class' website. It was neat having people standing behind me giving me comments while I was working on this at uni.

The assignment asked to have a man made out of stretched spheres called a 'blobbyman' to do the moves to the Macarena dance. The figure was to use nested transformations and there were extra marks for things like having 2 figures and interactions between them. I started on a typical blobbyman but thought I could do more, so I ended up with a skeletal animation system (extended form of nested transformations) loading Milkshape3D models with my own animation file format. I think I was the only one to use texture mapping aswell.

Although it had to be of the Macarena, I had plenty of fun making it and learnt heaps doing it myself. I hope someone can find use of my work.

The source code is fully commented with a log history and readme file that details all the features and keyboard commands.

Download source and executable here [1337kB]
As above you will need cygwin1.dll [586kB] and glut32.dll [232kB] to run the program.
To compile in cygwin, just type 'make' to use the makefile.

Closeup
The whole scene
Skeleton in mancage
Smoke Effect
After writing a particle engine, I thought that I could do a smoke effect.

A different particle texture, some changes to the particle emmiter, some subtle wind, and a different blending effect made a realistic smoke effect.

Download here [360kB]
Smoke
Particle System
This was my first attempt at a particle engine. Turns out they are fairly simple and the effects are easy to achieve.

I made a particle emitter fly around the screen letting loose all those nice colours. There is also some wind/gravity effect happening.

Download here [599kB]
Particles
Love

This was a quick project I worked on to display some OpenGL effects.

It is just a textured box bouncing around in 3D space, with alpha blending enabled. The sides resize using a simple linear interpolation formula.

Also uses FMod API to play an mp3 file (need to add fmodvc.lib to libraries for compilation).

Download here [713kB]

Love
Flags
2 Flag effects using sine waves.

One is made up of strips of rectangles.

The other uses small squares to add an extra dimension to the wave to get it circular.

Download here [252kB]

Flags