User:Corporateshark/sandbox
Developer(s) | Sergey Kosarevsky, Viktor Latypov |
---|---|
Initial release | 2003 |
Stable release | 0.5.88
/ February 23, 2009 |
Written in | C++, LinderScript |
Operating system | MS Windows XP/Vista |
Platform | Win32, Win64 |
Available in | English |
Type | Middleware |
License | Open source and proprietary |
Website | http://www.linderdaum.com |
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.88 - current version with a volume rendering functionality
Supported platforms
Supported compilers and platforms
The framework is compatible with the following compilers:
- Visual C++ 2005 and 2008
- Intel C++ Compiler 10
- GCC 4.3.3+
The following platforms are supported:
- Microsoft Windows (32-bit and 64-bit)
- 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 middleware:
- OpenGL
- OpenAL
- FMOD (optional usage)
- FreeImage
- NVPM
- NvTriStrip
- PugiXML by Arseny Kapoulkin (optional usage)
- RealScriptCompiler by Viktor Latypov
- TreeLib by Stefan Elsen
- VolumeProc by Viktor Latypov
- OggVorbis