User:Corporateshark/sandbox

Linderdaum Engine is an object-oriented middleware written in C++ meant for rendering of interactive 3D environments. It consists of two major components:


 * open source Linderdaum Engine framework, meant to be a corner stone for development of 3D applications
 * proprietary state of the art GPU-accelerated direct volume rendering library which is built on top of the framework

Main fields of application are games, interactive rendering systems, industrial and scientific volume data visualization i.e. from computed tomography.

Versions history
The project was started in late 2001 by Sergey Kosarevsky with first 3D engine implemented in Free Pascal. The date February 11, 2002 can be called the beginning of the project, that is then Viktor Latypov joined development. The versions history can be summarized as follows:


 * 0.1.x - one person hobby project, just a bunch of code (until 2002)
 * 0.2.x - refactored framework, initial concepts of the future architecture
 * 0.4.x - well thought-out object-oriented reimplementation of the project from scratch (2002-2003), a demo from this branch was released and still is available for download (though written in Free Pascal)
 * 0.5.x - reimplementation of the project from scratch in C++ (since 2004 and maintained now)
 * 0.5.99c - added volume rendering functionality
 * 0.6.x - Android support added

Supported compilers and platforms
The framework is compatible with the following compilers:


 * Visual C++ 2008/2010/2011
 * Intel C++ Compiler 10+
 * GCC 4.3+

The following platforms are supported:


 * Microsoft Windows (32-bit and 64-bit)
 * Android (Android NDK r6)
 * Linux port is on the way

Industrial and scientific volume rendering
Linderdaum Engine generates images from 3D and 4D computed tomography datasets using the method known as GPU accelerated volume ray casting. It is a straightforward method that utilizes capabilities of modern video cards and is ready for next-generation hardware. With the possibilities offered by this technology, there is a lot of room for new techniques that do not simply convert existing algorithms to the GPU, but use the very strengths of this architecture to create more realistic images at interactive frame rates. Recent research papers show that GPU accelerated raycasting is far more flexible than traditional volume rendering approaches and has the specific advantages, namely:
 * An exploitation of massively parallel GPU architecture
 * Trilinear interpolation is automatically (and extremely fast) implemented via hardware 3D textures
 * Implicit support for perspective (or any other) projection
 * Possibility to intersect volume with any renderable geometry
 * Efficient empty-space-leaping
 * Potential better image quality than common slices-based techniques

Features

 * OpenGL-based renderer with GLSL vertex, fragment and geometry programs support
 * Scene graph for automatic multipass rendering and frustum culling
 * Internal GUI with common controls library and high DPI aware rendering capabilities
 * Audio subsystem with 3D positional sounds and streaming playback
 * Virtual file system based on memory-mapped files
 * Scripting subsystem via object-oriented LinderScript scripting language with a C++ like syntax
 * Resources manager with transparent caching of all shared resources

Used third party libraries
Linderdaum Engine is based on the following APIs and libraries:


 * OpenGL
 * OpenAL
 * FMOD (optional usage)
 * FreeImage
 * PugiXML by Arseny Kapoulkin (optional usage)
 * RealScriptCompiler by Viktor Latypov
 * TreeLib by Stefan Elsen
 * VolumeProc by Viktor Latypov
 * OggVorbis