Scenic

[Back to the Front Page]

I have always been interested in 3d Graphics. That's what I did at University. About 5 years ago, one of my final year projects was to create a 3d Graphics Environment, where you could add Objects and Lights in a GUI and then press a button to render the output. Scenic was that project, coded on a Mac.

Since then, it has sat on a shelf - however my interest in Graphics hasn't diminished. I want to produce a "Sandbox" - a graphical play area for me to try out ideas. The scafolding used to create this environment is the bones of the Scenic project.

The only requirement to get this code to run is for a OS interface to produce a graphics buffer, and the ability to do a 'putpixel'. All other functions, e.g. line rendering, polygon filling, are to be coded in the sandbox. Realising the effort to get this running under C++ on Windows was too much I looked around, and came across the Allegro graphics library. When I found out that it runs even better on Linux, well I was as happy as a pig in the prevebrial.

The entries below show the progress. You'll need Linux, gcc and Allegro. Visit the Allegro Homepage

Saturday, 24th March 2001

Scenic.0.0.1.tar.gz

Produces a cube that rotates on the screen. OK, not rocket science, but it is done in long-winded fashion, using linked lists of points arranged in higher level abstractions. The reason for this, as opposed to the hacker method of arrays and stuff, is for flexibility later on.

Saturday, 14th April 2001

Scenic.0.0.2.tar.gz

The basic gouraud shading routines have been repaired. Theres still a long, long way to go, but here is a picture:

Please try not to faint from the excitement!

Monday, 27th May 2001

Scenic.0.3.tar.gz

Done quite a bit of work splitting out the datastructures into seperate files. So not a huge amount of difference on the surface, but a lot of changes in the code. Also fixed to work with stuff provided in Mandrake 8, (2.4 kernal, XFree86 v4, etc), and the new version of the Allegro library.
The code is now GPLd
There remains a memory leak somewhere.