Horde3D Wiki:FAQ

From Horde3D Wiki
Revision as of 12:28, 4 January 2009 by Volker (talk | contribs) (New page: == 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 effe...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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 LGPL. 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. So 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.

Is Horde3D a productive engine or just a research project?

Horde3D is definately meant as a productive engine for use in games or other visualization applications. Although the project is supported by the University of Augsburg which uses it for several research projects, Horde's lead developer Nicolas Schulz has a game development background with many years experience in an ambitious indie group. The engine is designed for demanding real world applications and optimizing workflow as well as offering easy integration with other libraries are major issues for us.

How does Horde3D compare to commerical nextgen engines?

There has already been serious interest from the games industry in Horde3D as an option to proven and well-known commercial next-generation engines. So it is interesting to see how Horde3D compares to these. First off in contrast to the other engines Horde3D is a pure graphics engine. Nevertheless Horde3D has some concepts which make the integration with physics and other game related libraries very comfortable and efficient. Since Horde3D has a shader driven architecture and a very flexible customizable rendering pipeline nearly all modern rendering techniques like normal mapping, deferred shading or post processing effects like HDR, DOF or motion blur can be realized with a minimum of effort. So from the graphics quality that is possible there is probably not much difference. The animation system in Horde3D is also quite powerful. It supports skeletal animations with blending and mixing and morph targets for facial expressions. Finally there is one important point where Horde3D can really score: its small size and the clean code and concepts. Horde just has some thousand lines of code as compared to several tens or hundreds of thousands lines in other engines. This makes it much more efficient and easy to extend the engine or adopt it to your specific needs. It is obvious that such a small codebase is much better to understand, maintain, extend and debug than an enormous library where you would need days just to browse through the code.

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