Horde3D - Next-Generation Graphics Engine
| Projektstart: | 01.01.2007 |
| Projektträger: | Universität Augsburg |
| Projektverantwortung vor Ort: | Nikolaus Bee |
| Beteiligte Wissenschaftler der Universität Augsburg: |
M.Sc. Volker Wiendl M.Sc. Nicolas Schulz |
Zusammenfassung
Horde3D is a small open source 3D rendering engine. It is written in an effort to create a graphics engine that offers the stunning visual effects expected in next-generation games while at the same time being as lightweight and conceptually clean as possible. Horde3D has a simple and intuitive interface accessible from virtually any programming language and is particularly suitable for rendering large crowds of animated characters in next-generation quality.
Beschreibung
Horde3D is a small open source 3D rendering engine. It is written in an effort to create a graphics engine that offers the stunning visual effects expected in next-generation games while at the same time being as lightweight and conceptually clean as possible. Horde3D has a simple and intuitive interface accessible from virtually any programming language and is particularly suitable for rendering large crowds of animated characters in next-generation quality.
Current Features
The following features are implemented in the current release
General Features
- Powerful graphics engine designed to meet the requirements of next-generation games
- Shader driven architecture with SM 2.0 compatible hardware as a minimum requirement
- Simple and lightweight overall design with very few dependencies, avoiding complexity where possible
- Clean object-oriented C++ code
- Simple and intuitive C-style DLL interface for easy integration with virtually any programming language
- Cross-platform compatible using OpenGL as rendering API
- Suitable for Augmented Reality (AR) and stereo applications
- Functionality for easy integration with game engines and other middleware like physics engines
Resource Features
- Robust resource management for avoiding unnecessary loading of data
- Garbage collection for handling resource dependencies
- Interface for loading data from files, streams or any type of archives
- Dynamic reloading of resources for more efficient development
- Loading of models and animations from optimized binary formats
- Loading of materials from a custom XML format
- Loading of shaders from a custom XML format including vertex and fragment shaders written in GLSL
- Loading of 2D and cubemap textures in jpg, png, tga, bmp, psd and HDR formats
- Loading of pipelines to quickly switch rendering techniques (e.g. from forward to deferred shading)
Scene Features
- Scene graph structure with hierarchical transformations and bounding volumes
- Unified scene system where world, models and skeletons are just scene graph branches and no special objects
- Loading of scene graph branches from XML files with complete orthogonality to API functions
- Optimized frustum culling on the scene graph using AABB trees
- Occlusion culling
- Level of detail support
- Possibility to attach scene nodes to joints (e.g. for character props)
- Access to vertex data for collision detection and interoperability with physics engines
- Ray collision queries and node picking
Animation Features
- Unified animation system working directly on scene graph
- Keyframe animation for joints and meshes
- Skeletal animation with up to 4 weights per vertex for articulated models
- Layered animation blending and mixing using masks and additive channels
- Inter-frame interpolation for smooth animations
- Access to joint data for dynamic animations and ragdoll physics
- Morph targets for facial animation and lip synchronization
Visual Features
- XML based customizable rendering pipeline with allocatable render targets and commands for rapid testing of different rendering techniques
- Postprocessing framework for effects like bloom, DOF or motion blur
- Support for forward rendering and different deferred shading techniques
- Support for High Dynamic Range (HDR) textures and lighting
- Support for almost all modern rendering techniques, including normal-mapped phong lighting and parallax mapping
- Support for real-time reflections and other techniques that require several cameras for rendering
- Realtime shadows based on Parallel Split Shadow Maps
- Shaders for materials and light source interaction
- Software skinning and vertex shader skinning for rendering hundreds of animated characters
- Fully integrated particle systems that can cast shadows and receive other effects like motion blur
- Overlays for rendering GUI elements and font
Tool Features
- Powerful Collada Converter for importing model data and animation from many widely used modelling packages
- Calculation of tangent space basis for bump mapping
- Optimization of geometry for GPU cache
- Powerful editor for composing scenes and developing shaders and rendering techniques
Hardware requirements
Horde3D requires an OpenGL 2.0 compatible graphics card with support for floating point buffers like a GeForce 6 series card or Radeon 9500.
To assure best compatibility, the engine is usually tested on different NVidia and ATI hardware cofigurations at the Multimedia Lab of the University of Augsburg.

