- Suche

- Kontakt

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

horde3dngge_logoHorde3D 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.