DIMAJIX - software consulting (http://www.dimajix.de/)
 

Technical Demos

Here you will find some demos originating from Project Magnum. The source code for all demos is optionally available under a BSD-like license. In order to compile the demos yourself, you will also need the Magnum Framework and some 3rd party libraries.

3D Model Viewer


This small application is a small and fast stand-alone 3d model viewer, which can handle even models with millions of polygons, like those found at Aim @ Shape. It also features texturing and per pixel Phong shading (where available).

Currently the viewer can read 3DS, IFS, OFF, PLY and OBJ files. MD2, MD3 and MDS files are supported, but no material is mapped and animations won't be played. More file formats are to be supported in the future.

[Download ZIPed executable only viewer.]   (654KB)

Mirroring Spheres


This small demo was created as a test of the new OpenGL EXT_framebuffer_object extensions which allows direct rendering into textures. The demo also supports the old-style texture copy method for graphics hardware or drivers that don't support the new extension.

But you need an OpenGL 2.0 compliant graphics card anyways, because the demo uses GLslang shaders for reflections.

[Download ZIPed executable only demo.]   (1.6MB)
[Download ZIPed demo including source.]   (1.6MB)

Soapfilm


This demo tries to imitate the behaviour of a soapfilm in a flexible wireframe. The enclosing wireframe is modeled by interpolating trigonometric polynomials, while the soapfilm itself uses the same relaxation technique as also used for cloth simulations. The surface is rendered using a GLSL vertex and fragment shader that takes into account one pointlight and the reflectivity of the soapfilm as a function of the angle between the surface normal and the eye vector.

Requirements: This demo requires an OpenGL 2.0 compliant graphics cards with appropriate drivers installed. Currently it is tested on an NVidia Geforce FX and on an ATI Radeon 9800.

[Download ZIPed executable only demo.]   (3.3MB)
[Download ZIPed demo including source.]   (3.3MB)

Spring Test


This demo is about a cloth simulation using a simple spring systems. Spring systems are an easy physical concept for simulation of cloths, gels and other materials. They can even be used for some optimisation problems and allow very complex setups while the simulation steps (relaxations) are still easy to implement and perform very fast.

This implementation is very general and allows the setting of gravity and damping and the application of external forces to single nodes, which even can have different weights. The physics simulation is implemented separately from the visualisation subsystem.

[Download ZIPed executable only demo.]   (413kB)
[Download ZIPed demo including source.]   (430kB)

SceneTest


The third download is a very simple test of some basic features of the scene graph architecture plus of the optimizer. Again the model used in this test is freely available at Meshfactory.

A 3ds model is loaded and inserted into the scene graph which is then rendered in the window. You can easily add additional instances of the model (and see the performance drop). You can also select to optimize the model, which will increase the performance noteably.

[Download ZIPed executable only demo.]   (1.5MB)
[Download ZIPed demo including source.]   (1.6MB)

3DS Loader Test


The second download is a simple test of the 3DS Loader demonstrated at a model which is freely available at Meshfactory. Of course all 3D routines heavily use OpenGL for display.

A simple 3DS model is loaded together with its textures and displayed at a framerate of 20 frames per second. You can move the model using your mouse and buttons.

[Download ZIPed executable only demo.]   (2.3MB)
[Download ZIPed demo including source.]   (2.4MB)

Gui3D Test


As a first download, a package has been built demonstrating some the basic features of a graphical user environment built on top of OpenGL.

The whole client area of the window is an OpenGL buffer and is redrawn at 20 frames per second. As you move the mouse over the buttons, their state is changing to "hover" and the colour changes. The same is true when you finally press a button. All font rendering is done with freetype.

[Download ZIPed demo.]   (780kB)