OpenGL UFO Kite Animation

Look around the Graphics Lab
OpenGL vs PovRay Comparision
PovRay UFO Kite animation (raytraced)

The images and GIF animation on this page were generated using the OpenGL 3D computer rendering software library. This is the same library that is used for generating the cool 3d text screen savers and games on PC's. Actually The OpenGL was the freeware version called Mesa.

In other words the kite is completely virtual!


It was done in this way as a spinning UFO kite is not a simple thing to create from a still picture, as you could with a more `normal' kite. Each frame is different. I could have taken a video sequence, or lots of still frames. But these kite rotate too fast for such methods, requires good equipment, and are poor quality.

Besides I wanted to know how to generate 3D images. Maybe next time I'll make more complex Ray traced images :-)

Update: this have now been done. See raytraced generated UFO. This includes a comparison of the two metjods of 3d object scene generation.

How was it Created

I first learnt how to use the OpenGL 3d library (using the C language) to the point where I created a program to render (draw) a 3d object (written as a C subroutine using OpenGL commands), on my display. All this was done on a 2 different PCs: one Laptop 200mmx with SuSE Linux 6.4; and a desktop Pentium II 450 with RedHat Linux 6.4).

The program allowed the viewer to rotate the `camera' or viewing position around the camera, try both perspective views (including pulling the camera in and out from the object) and orthographic (flat linear) views, turning lighting on/off, surface smoothing, lighting on/off, wire frame (if object drawing routines allow) as so on. IE: I first played around to see want could be done and tred out various things.

After this initial `play' period, I created the UFO object subroutine using OpenGL primatives and toolkits (GLU and GLUT).

[image] [image]

First a I created the wing from a flat disk (two sided lighting) to which I added a torus around the edge for the kites spar. This surface was then (incorrectly, but good enough for this object) scaled to produce the oval `wing' surface of the kite. This surface was then duplicated in a different colour, and slightly different size, then rotated around the vertical axis to produce the UFO `ear'.


A long cylinder (very dark gray) added for the axil, and at each end two disks (coloured chocolate) to form the fibre washer bearings I use on my UFO's.

Lastly a bridle line was drawn, using plain white lines (lighting turned off or they disappear).

To antialias (smooth out and remove the `jaggies') the object is rendered 8 times on a `jitter' pattern (each drawing is positioned a fraction of a pixel away from the normal position). The 8 `jitter' images were the added together resulting in a very clear smooth image of the object. (Look at the bridle lines and edges of the still images.

The antialiased (jitter averaged) images were then generated 18 times (10 degree rotation each time) at the current camera view (IE light and bridle did not rotate with rest of object), to produce a full animation cycle (1/2 rotation of the UFO). Each frame was written to a tiff file (after finding a "writetiff()" subroutine on the net to do this.

After generating 18 images, these were merged together using the ImageMagick program `convert', into a animated GIF image. This animation is then optimised by another program called `gifsicle', to remove the unchanging parts of a frame, to produce for a much smaller and faster animation.


There are mistakes in the image. [photo]

The light position was supposed to above and `down wind' from the UFO, as shown in the photo of a real UFO kite (left). Instead it is `up wind' of the object as noticeable from the highlights on the gold `ear' surface edge of the animation. This was fixed for ``view from the rear'' version (smaller animation above).

Also I was NOT able to figure out proper shadows between the `ear' and the `wing' as it rotates. The problem is the complexity of the two mutually shadowing surfaces, which can intersect. IE the normal method fails for this specific case.

Another problem is more of a technicality. A UFO kite does not sit perfectly stationary in the air. Not only does it move around and roll a bit, just like all kites do, but it also stretches and released the line slightly, making the axil move in a circular fashion a couple of centimetres.

This motion is not typically visible from the ground, it is very fast and not very big relative to the kite. But for a close up animation like this should be highly visible.

Of course the question really is: do you really want to go this far with a computer animation? :-) It is after all only a simulation.

Created: 20 December 2000
Updated: 12 January 2001
Author: Anthony Thyssen, <anthony@cit.gu.edu.au>
URL: http://www.cit.gu.edu.au/~anthony/graphics/ufo_opengl/