| Irrlicht 3D Engine | |
|---|---|
| Developer | Nikolaus Gebhardt et al. |
| Stable release | 1.8.5 / 1 November 2021; 4 years ago (2021-11-01) |
| Repository | |
| Written in | C++ |
| Operating system | Cross-platform:Windows,Linux,macOS,Windows CE |
| Type | Application framework |
| License | zlib/libpng-based |
| Website | irrlicht |
Irrlicht (pronounced[ˈɪʁlɪçt] in German) is anopen-sourcegame engine written inC++. It iscross-platform, officially running onWindows,macOS,Linux andWindows CE and due to its open nature ports to other systems are available, includingFreeBSD,Xbox (up to Irrlicht version 1.8.1),PlayStation Portable,[1]Symbian,[2]iPhone,[3]AmigaOS 4,[4] Sailfish OS via a Qt/QML wrapper,[5] andGoogle Native Client.[6]
Irrlicht is known for its small size and compatibility with new and older hardware alike, ease of learning, and a large friendly community.[7][unreliable source?] Unofficial bindings for many languages exist includingAutoIt,[8]C++Builder,[9]FreeBASIC,[10]GameMaker Language,[11]Java,[12]Lua,[13].NET,[14][15][16]Object Pascal (Delphi),[17][18]Perl,[19]Python,[20][21] andRuby,[22] though most of them have not been maintained for five years or more.
Irrlicht's development began in 2003 with one developer, Nikolaus Gebhardt.[23] Only after the 1.0 release of Irrlicht in 2006 did the team grow to ten members as of 2011, most of them being developers.[24]
Irrlicht is a common German term for awill-o'-the-wisp.
Irrlicht supports 3D rendering viaOpenGL,DirectX 8, 9 and internal software rasterizers. DirectX 8 is not supported after 1.8.1,[25] effectively ending support for Xbox. External renderers and windowing systems plug in through simple interfaces, giving rise to a community-madeSimple DirectMedia Layer (SDL) video driver and support foriPhone andSymbian devices. The engine comes with a library of standard material renderers, allowing fallback materials where user hardware is unable to handle advanced methods. New materials can be added to the engine at run-time, allowing users to write their own as needed. In addition to legacy fixed-function pipeline materials, programmable Pixel and Vertex Shaders (1.1 to 3.0 and 4.0 using GLSL), ARB Fragment and Vertex Programs,HLSL,Cg andGLSL materials are supported.


Irrlicht supports many file formats. It will load and display 3ds Max files, Quake 2 MD2 Models, Wavefront .obj objects, Quake 3 .bsp maps, Milkshape3D objects, and DirectX .x files.[26] Additional format loaders have been written as external plugins. Lights, cameras and 3D objects are managed as a tree ofScene Nodes, arbitrary groupable entities linked together in ascene graph. These nodes are responsible for their own behaviour, but can also be managed by animators, each other, or manually by users.
Many built-in node types exist and can be used together to make complex indoor and outdoor scenes. New nodes are trivial to make and can be added at runtime; many additional node types are available from the community. Node types packaged with Irrlicht include a terrain renderer and sky domes-boxes for outdoor rendering,binary space partitioning (BSP) for indoor rendering, bone based animated meshes, stencil shadows, billboards and particle systems, water surfaces and primitives.
Askinnable 2Dgraphical user interface (GUI) is available, supporting many controls and the ability for users to plug in their own (or community made) custom widgets at runtime. Irrlicht's internal event system provides mouse, keyboard, joystick and GUI events without having to rely on additional libraries.[27]
Filesystem access is abstracted allowing platform-independent file and folder access, and transparent access to files withinZIP archives. Other I/O features include an XML reader and writer, the ability to take screenshots, manipulate images and meshes and then save them in several different file formats.
Irrlicht provides support for simplecollision detection including mouse picking, but users are advised that this is not intended as a replacement for a full featuredphysics engine.
Irrlicht was designed to be able to load and save the current scene to an XML file; this combined with the engine's open-source licensing model has attracted various programmers and developers to create world editors for Irrlicht to simplify the world-creation process. One such example is theirrEdit world editor, developed by Nikolaus Gebhardt and other members of the company Ambiera.[28] IrrEdit contains aradiositylightmap generator and a scripting interface usingSquirrel scripts.
Since Irrlicht does not support sound by itself, Ambiera has also developed irrKlang, a non-free, proprietary audio library with an API similar to Irrlicht.[29] Being developed by the same group, irrEdit supports the use of sounds in levels made by irrEdit for use with irrKlang-enabled compiled DLLs. Also, among Ambiera's creations is irrXML, Irrlicht's XML parser.
Many physics libraries have had plugins and wrappers written for Irrlicht, includingNvidiaPhysX,Bullet, andOpen Dynamics Engine.
More extensions can be found in the Irrlicht forums and in the irrExt project, a side-project of Irrlicht for special purpose add-ons.
There are also some new technologies in forums such asDeferred shading orShadow mapping. Many users contribute extensions such as Compute Shaders (OpenGL 4.3) and Tessellation Shaders (Shader Model 5.0).