"Humanity has advanced, when it has advanced,
not because it has been sober, responsible, and cautious,
but because it has been playful, rebellious, and immature."
Tom Robbins

MSc Projects

These are some of the projects in worked on as assignments for the MSc CAGTA (Computer-Aided Graphical Technology Applications) course. I took this masters program to improve and "officialize" my knowledge in computer graphics and specially because the course consists of modules both technical and creative.

Note: You can clink on any of the thumbnails to see a larger version of the image.

Games Programming

games As an assignment for the "Games Programming" module we were asked to design and program a small game, or a part of it, using DirectX (Direct3D, DirectSound, DirectInput). My project consited in coding a 3D version of Choplifter, one of my favourite games of yesterday.

I was not able to introduce any gameplay features (due to lack of time) but I managed to implement a solid game structure, including graphics, sound, input and logging. A console is included with receives and processes commands (a Quake-like console). A small and simple level editor was implemented as well, to create maps for the game.

Download: zip Visual Studio .NET Project (game & editor) | zip Binaries (win32)

Raytracing

raytracing This was the first time I was asked to do any non-real time graphics programming. During part of the module "Graphics Programming and Algorithms" we learnt of raytracing works and were asked to implement a sphere raytracer featuring shadows, reflection and refraction.

My raytracer includes: a custom ASCII scene description file format, multiple lights, recursive refraction and reflection, spheres and planes, texture mapping and normal mapping using pre-calculated normal maps. The program was coded in MinGW Studio, so that it can be compiled and run in both Linux and Windows PCs.

Download: zip MinGW Studio Project & Linux Makefile | zip Binaries (Win32 & Linux)

Particle Systems

particles The "Visual Simulation" required us to expand one of the topics that were thaught during class. I chose particle systems, and implemented a real-time approximation of eulerian methods for rendering particle systems in real time. My approach uses both "traditional" particle systems methods (such as billboarding and texture mapping) but also incorporates other techniques such as flock simulation to allow particles to "affect" each other's graphic characteristics.

The project was coded in MinGW Studio and can be compiled on Windows and Linux boxes.

Download: zip MinGW Studio Project & Linux Makefile | zip Binaries (Win32 & Linux)

Beziér Patches

bezier The second "strand" of the "Graphics Programming and Algorithms" module was concerned on rendering of surfaces and patches. For this module, I coded a small application than can load and display objects which consist on a set of bézier patches. Each patch in the object can be individually selected and its control points can be moved to modify the surface.

Download: zip MinGW Studio Project & Linux Makefile | zip Binaries (Win32 & Linux)

Copyright © Edgard Lindner 2005. All Right Reserved.