OGRE provides several options for shadow implementation that can be combined and customized by the user. This gives the user greater freedom to find the best settings for the needs of their scene.
OGRE uses scripts for many of its features, which are loaded while in use. This allows the user to modify the scripts for immediate effect without the need to recompile.
OGRE’s base design allows it to be extended, usually through plugins. Further, OGRE's conceptual design does not assume it will be used for one particular application over any other. This allows it to be a blank slate for users to adapt to whatever applications they need. This gives the user the ability to adapt OGRE to solve almost any problem.
Interfaces in OGRE are independent of platform and API, so the code used does not need to be dependent upon them either. The user can utilize higher-level classes and allow the engine to determine the most appropriate implementation.
OGRE has official support through the OGRE manual and full API documentation. There is additional community support through the wiki and active forums.
OGRE is designed to be an extremely flexible graphics rendering engine, which means that there is no one test case where it excels. If the user wants to make a relatively standard first-person shooter game, a more thorough game engine with integrated physics simulation and a graphics rendering engine designed for that type of movement, such as Unity. If the user wants to have many animated characters visible at the same time, for example in a simulation or massively-multiplayer game, a rendering engine like Horde3D would be a more efficient option.
OGRE is a C++ library that requires programming knowledge to use. Furthermore, OGRE is fairly advanced and is not recommended for users new to programming or object-oriented programming.
Horde3D was originally designed specifically to render large crowds, a task that is generally very resource intensive. Horde3D is designed to keep hierarchies of nodes small and easy to traverse to reduce overhead. It also utilizes cached data more efficiently than other rendering engines in an effort to produce faster animations.
The structure for storing the data of the graphics objects allows the user to add additional data specific to the application using Horde3D. Using this functionality, the user can easily integrate Horde3D with a game or physics engine, for example.
In order to add custom graphics functionality, the user needs to modify the source code directly. This is due to the high level of abstraction used in the programming interface. To circumvent this, Horde3D does include a method for customization through extensions.