Recent Projects
2007 - 2008
-
Z33 project Toegepast 12 - 'First things first' [Dutch]
 |
"Een film, of de opeenvolging van beelden, dwingt toeschouwers het perspectief van de auteur in te nemen. Het gevoel dat dit de beeldcultuur verarmt, leefde reeds bij een groep grafische ontwerpers uit 1964. In het manifest First Things First uitten ze hun onvrede. Tom Vanwelkenhuyzen vertaalt hun visie naar vandaag. Hij projecteert veertien filmpjes van YouTube. Tom werkte samen met Yannick Francken die een techniek ontwikkelde om beeld te manipuleren. Door de toeschouwer terug macht te geven, komen subliminale boodschappen aan het licht."
Bron: www.z33.be
|
2006 - 2007
-
VACF - Virtual Arts Centre of the Future
Part of this IBBT-project is based on the use of the Quake III engine. I have to take care of the engine-related modifications that have to be made. More info on this project can be found on the website: VACF.
The following topics have been worked out:
- Behaviour logging:
Quake III triggers hit by the different clients are written to text files
on disk and are transformed into user specific profiles afterwards. More
info: BehaviourLogging.pdf
- User profiles:
The user profiles contain interest regions (eg "music", "theater" and
"dance"). These are generated based on the previously logged events. Per
interest region, per user, an indication is kept "how much" the user
is interested in this region. A person is identified by his current name
within the game.
More info: BehaviourLogging.pdf
- Adaptive maps:
While loading a Quake III map, groups of textures can be adapted (replaced)
based on the user profile.
- Inter-platform-chat:
In theory it should be possible to send text messages between Quake III
clients and a corresponding community website via a central database. In
practice this is not tested yet.
- Q3Radiant shader projection:
Together with internship students (Leon Denis and Walter Brebels) we have
realized projective "Q3Radiant shader" mapping. This means that players
can use a kind of light or slide projector which is able to project
Q3Radiant shaders onto the world as well as on dynamic objects.
More info: Q3RadiantExtension.pdf
- Pixel shader integration:
The Q3Radiant shading language is extended with the possibility to
use GLSL vertex and fragment shaders within Q3Radiant shader stages.
Also these extended shaders can be projected by the earlier mentioned
projector. This work also done together with intership students (Leon Denis
and Ief Segers).
More info: Q3RadiantExtension.pdf
Study Projects
2005 - 2006
-
Master's thesis [ Dutch ]
Title
Ray Tracing op GPU en CPU
Abstract
In deze thesis wordt beschreven hoe een klassieke ray tracer herschreven kan worden voor uitvoering op de laatste generatie grafische hardware. Hiervan is een voorbeeldimplementatie gerealiseerd in Cg alsook een analoge versie in C++, die gebruikt wordt voor een vergelijkende studie.
De Cg versie blijkt tot meerdere malen sneller te zijn dan de hieruit afgeleide C++ versie. Vooral bij het renderen van hogere resoluties is er een beduidende snelheidswinst op de grafsche kaart. Dit is naar alle waarschijnlijkheid te wijten aan een meer coherente program flow van de in parallel lopende programma's (fragment shaders). Wat ook een niet te verwaarlozen rol speelt in het voordeel van de Cg versie, is het feit dat de ray tracer geschreven en geoptimaliseerd is in Cg, en daarna pas vertaald naar C++.
Indien de grafische kaarten blijven evolueren zoals dat nu het geval is, zal het in de toekomst mogelijk worden om een aanzienlijke snelheidswinst te boeken inzake ray tracing. Het verwezenlijken van een ray tracer op de GPU zal ook eenvoudiger worden vanwege de versoepeling van de huidige beperkingen van
enerzijds de grafsche kaart, en anderzijds de huidige compilers.
Screenshots
[ pdf ]
-
3D Real-time Strategy Game
This is an unfinished 3D RTS game. In fact this is just a terrain editor and renderer with some extra game-like features. Some features are:
- Procedural (fractal based) height map and texture generation
- Extensively use of Cg shaders for visualizing the terrains
- Graphical User Interface for editing maps (Qt)
- 3DS loader
- Pathfinding using A*
- Physics (Novodex)
- Sound (OpenAl)
- Typical optimizations: view frustum culling, backface culling, etc.
[ screenshots ]
2004 - 2005
-
Real-time Cloth Animation
This is a basic implementation of the article "Devil in the Blue Faceted Dress: Real-time Cloth Animation". This project is written in C++ using OpenGL and Glut.
[ screenshots ]
-
Photorealistic Renderer
For the subject Computer Graphics II we had to implement a program that was able to synthesize "photorealistic" images of given static 3D scenes, using stochastic ray tracing and photon-mapping. This renderer was not written from scratch, but rather from a typical ray tracer framework.
[ screenshots ]
2003 - 2004
2002 - 2003
This seems to be a very unproductive year.
My first programming steps ...
2001 - 2002
-
MD2 Viewer
MD2 is the file format of the Quake II models with their animations. The loader and viewer are written from scratch in C, using the OpenGL library.
[ screenshots ]
-
Stock management application
This is a very basic stock management application (for V.z.w "De Club"), written in Visual Basic.
[ screenshots ]
-
3D Engine
This very basic software 3D engine is written again in Turbo Pascal 7.0, although I was learning to program in the C programming language at that period. Here follows an overview of the most important features:
- Vertex transformations
- Flat shading
- Gouraud shading
- Z-buffering
- Backface culling
- 2D rectangle clipping
- 3D near and far plane clipping
- [File reader (format based on ASE)]
[ screenshots ]
2000 - 2001
-
Minesweeper 2
During my first tries to write C/C++ code (at that time I didn't know the difference between C and C++) I wrote this second version of a standard minesweeper implementation.
[ screenshots ]
-
Tetris on fire
Tetris on Fire is one of the last projects I have programmed in Turbo Pascal 7.0. As you can see in the screenshots, this program has never finished, but I have added it to this webpage because of the "nice looking" 2D flames integrated in it.
[ screenshots ]
-
High school assignment
For the subject "Dutch" in high school, again we had to make a creative "thing" about a book we read. This time I chose to make a Turbo Pascal 7.0 program about the book "Seks, dood en stralende sterren". The evening before the deadline, I wrote a little demo, which resulted in a combination of previously written code.
First you can see the book I had to read, reaching the viewer while rotating. The triangles this book consists of were texture mapped in software, backface culled, and sorted by depth value before the rasterization step. After a certain amount of time, the animation stops, and the resulting image starts wobbling. When the wobbling part is passed, the screen is vertically split into two equal parts, that scroll out of the screen in an opposite direction. Now the screen is black again, and a typical star field is coming up. Finally, you can see some kind of "blood animation" where a red skull appears after a while. And that's it.
[ screenshots ]
-
Triangle renderer
This Turbo Pascal 7.0 program takes care of transforming and rendering 3D (non-perspective corrected) texture mapped and flat shaded triangles. The invisible surface removal is limited to depth sorting, backface culling and near plane clipping.
[ screenshots ]
-
Z-buffer
This is a the first Turbo Pascal 7.0 I wrote after discovering the Z-buffer method.
[ screenshots ]
-
3ddaya
After writing a little 2D graphics library (rasterizer, PCX file loader, etc), I became interested more and more in visualizing 3D primitives. I started experimenting with 3D to 2D perspective projections and basic transformations in 3D. The result of this programming spree is this application where you can rotate different "sphere clouds" over different axes, and morph between them. Remark that you can safely ignore the name of this project. :-)
[ screenshots ]
-
Pacman level editor
Well, I ever thought of making my own Pacman, but I cancelled that project after I introduced a very annoying bug in the pathfinding code. Unfortunately, I had already written this level editor.
[ screenshots ]
1999 - 2000
-
Paddles
Except from some experiments with Turbo Pascal 7.0, this was my first real program written in this language. The graphics backend (320x256x8bpp) as well as the mouse communication was handled in (80x86) assembly language, embedded in the .pas files.
[ screenshots ]
-
Minesweeper
The last program I have ever written in QBasic was this minesweeper.
[ screenshots ]
-
High school assignment
For the subject "Dutch" in high school we had to make a creative "thing" about a book we read. I chose to make a QBasic program about
the book "Animal Farm".
[ screenshots ]
-
Master Mind
This is just another little freetime project, written in QBasic.
[ screenshots ]
-
4-in-a-row
This is my first finished program, written in QBasic.
[ screenshots ]
|