A Programmable Tutor for OpenGL Transformations
Goals
Computer Graphics is a growing field that is becoming more and more present in Computer Science studies. For the computer graphics practitioner, it is extremely important to master transforms. Transforms are used to position, reshape and animate objects, lights and cameras. Transforms are used also to ensure that computations are carried out in a particular coordinate system, and to project objects onto a plane in different ways.
Geometric transforms is commonly one of the topics that students find difficult to understand. In this project aims at providing a geometric transformation tutor intended to help students understand and acquire an intuitive notion of several concepts related with geometric transformations from a learn-by-practice approach. The tutor has been designed to address topics such as viewing transforms (camera analogy, orthographic, and perspective camera models), Modeling transforms (basic affine transforms and concatenation of transforms), and camera animation.
Two key features of this application concept are the programmability (via a script language) and the possibility of writing interactive tutorials for guiding the learning process.
Source code
Source code of the first release of the tutor will be available here soon. In the meanwhile, you can download a preliminary alpha version with limited functionality here (April 27, 2006 version). Please note that this version lacks some functionality but allows to check some features.New: beta version with QSA script support here (May 30, 2006 version).
The tutor is written in C++ and has been tested on Linux, although it should compile without problems on Windows. The tutor uses the following libraries (which should be installed separately):
- Qt (a cross-platform C++ GUI development toolkit): http://www.trolltech.com
- QSA (Qt Script for Applications): http://www.trolltech.com/products/qsa/index.html
- lib3ds (a free ANSI-C library for working with the popular "3ds" format): http://lib3ds.sourceforge.net/
This application is being implemented by Marc Lopez as part of his Master Thesis.
This page is maintained by Carlos Andujar, Pere-Pau Vazquez, Marc Lopez 2006.