Irrlicht Engine
From Wikipedia, the free encyclopedia
This article includes a list of references or external links, but its sources remain unclear because it lacks inline citations. Please improve this article by introducing more precise citations where appropriate. (December 2008) |
Developed by | Nikolaus Gebhardt et al. |
---|---|
Latest release | 1.5 / December 15, 2008 |
Written in | C++ |
Operating system | Microsoft Windows, Linux, Mac OS X, Windows CE |
Type | Application framework |
License | zlib |
Website | Irrlicht 3D Homepage |
Irrlicht (pronounced [ˈɪɐ̯lɪçt] in German) is an open source 3D engine written in C++. It is cross-platform, officially running on Windows, Mac OS X, Linux and Windows CE and due to its open nature ports to other systems including the Xbox, PlayStation Portable[1], SymbianOS[2] and iPhone[3] are available.
Irrlicht is known for its small size and compatibility with new and older hardware alike, a shallow learning curve and a large friendly community[4][5]. It is released under the zlib license allowing commercial use without having to release source changes. Unofficial bindings for many languages exist including .NET[6], Java[7], Perl[8], Ruby[9], Python[10], FreeBASIC, Lua[11], Delphi[12][13] and even Game Maker[14].
Irrlicht's development started in 2003 with only one developer, Nikolaus Gebhardt.[15] Only after the 1.0 release of Irrlicht in 2006 the team grew to currently ten members, most of them developers.[16]
Contents |
[edit] Features
Irrlicht supports 3D rendering via OpenGL, DirectX 8 and 9, OpenGL ES, and internal software rasterizers. External renderers and windowing systems plugged in through simple interfaces, giving rise to community-made SDL, iPhone and SymbianOS devices. The engine comes with a library of standard material renderers, allowing fallback materials where user hardware is unable to handle advanced techniques. New materials can be added to the engine at run-time, allowing users to write their own as required. In addition to legacy fixed-function pipeline materials, programmable Pixel and Vertex Shaders (1.1 to 3.0), ARB Fragment and Vertex Programs, HLSL and GLSL materials are supported.
The engine supports most common 3D mesh and image formats by default, and more have been written as external plugins. Lights, cameras and 3D objects are managed as a tree of 'Scene Nodes', arbitrary groupable entities which are responsible for their own behaviour. Nodes can be managed by generic animators, by each other, or manually by the user. A large number of 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 extra ones are provided by the community. Internal node types include a terrain renderer and sky domes/boxes for outdoor rendering, BSPs for indoor rendering, bone based animated meshes, stencil shadows, billboards and particle systems, water surfaces and primitives.
A skinnable 2D 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.
Filesystem access is abstracted allowing platform-independent file and folder access, and transparent access to files within Zip archives. Other IO 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's provides support for simple collision detection including mouse picking, but users are advised that this is not intended as a replacement for a full featured Physics engine.
[edit] Engine Extensions
The engine's open-ended nature has attracted various programmers and developers to create world editors for Irrlicht to simplify the world-creation process. Irrlicht was designed to be able to load and save the current scene to an XML file. Ambiera, a company consisting mainly of Nikolaus Gebhardt, has developed the irrEdit World Editor [17] . Although in early beta, irrEdit contains a powerful radiosity lightmap generator and a scripting interface using Squirrel scripts, making it a powerful addition to the Irrlicht engine. Another newly-risen world editor is Sourena 3D World Editor. The editor however is still in progress.
Since Irrlicht does not support sound from the get-go, Ambiera has also developed irrKlang, the Irrlicht audio library. Being developed by the same group, irrEdit supports the use of sounds in levels made by irrEdit for use with irrKlang-enabled compiled DLLs.
Another creation handled by Ambiera is irrXML, Irrlicht's XML parser.
More extensions can be found in the Irrlicht forums and in the irrExt project, a side-project of Irrlicht for special purpose add-ons.
[edit] See also
[edit] External links
- Blog of author
- Irrlicht Engine Wiki at irrlicht3d.org
- DevMaster.net details and reviews of Irrlicht
- German Computer Magazine reviewed Irrlicht
- South African Game Development talking about Irrlicht
- An article series on using Irrlicht with Java
- Irrlicht in Linux Journal, April 2009 (Subscription required)
- A modified texture file used in Irrlicht sample program
[edit] References
- ^ LTE Game Engine
- ^ Irrlicht For S60
- ^ Announcement about Irrlicht on iPhone
- ^ Irrlicht support forum
- ^ Chat on Irrlicht (IRC)
- ^ Irrlicht.Net Cross Platform Project Page
- ^ Jirr: Irrlicht for Java
- ^ Irrlicht for Perl
- ^ IrrRuby
- ^ Venom: Irrlicht wrapper for Python
- ^ IrrLua, A Lua front end to Irrlicht
- ^ Irrlicht 4 Delphi
- ^ IrrPascal
- ^ GMIrrlicht
- ^ Interview with the Irrlicht founder
- ^ Development team members
- ^ Official website of the irrEdit Scene editor