Horde3D Wiki:FAQ
Contents
General
What is Horde3D?
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.
Under which license is Horde3D distributed?
Horde3D is distributed under the terms of the Eclipse Public License. See the licensing site for more information.
What are the minimum system requirements?
Horde3D requires a fully OpenGL 2.0 compatible graphics card. In terms of DirectX that means a card supporting at least Shader Model 2.0 or better SM 3.0. Hence the minimum hardware needed to run an application using Horde3D is a NVidia GeForce FX or ATI Radeon 9500 graphics accelerator.
Features
Why is Horde3D entitled as next-generation engine?
There are many discussions about what makes a game nextgen but on what most people agree is that you have many details, immersive gameplay and vivid worlds. Horde3D tries to do justice to these requirements from the perspective of a graphics engine. Horde has a shader driven architecture which makes it possible to do most cutting edge graphics effects like parallax mapping or HDR. Furthermore, it is possible to combine the engine with other specific middleware. For example, the scene graph and animation system are designed in a way that you can use dynamic animations calculated by an IK or ragdoll system. Another point is that Horde3D is optimized for rendering large crowds of animated characters which is also a feature in several newer games.
What makes Horde3D especially suitable for rendering crowds?
The complete scene graph and animation systems are designed with this requirement in mind. For example, Horde3D tries to keep node hierachies small to reduce call overhead and to use cached data for faster animations. The geometry is optimized for efficient cache usage and you can use several levels of detail for a model. Furthermore, it is possible to use vertex skinning and apply deferred shading to reduce the number of draw calls for scenes with many lights.
Horde3D is very lightweight compared to other engines. Doesn't that mean it is lacking power and flexiblity?
One of the major goals of Horde3D is to keep the design and code simple and clear. Nevertheless, we don't want any compromises when it comes to functionality and flexibility. A good portion of the development effort is spent on finding concepts which satisfy these sometimes conflicting requirements. The key to this is abstraction and orthogonality which help to reduce the number of special cases and thus to keep the code small and well comprehensible.