Irrlicht Engine

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Irrlicht 3D Engine
Image:Irrlicht Logo.png
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

[edit] References

  1. ^ LTE Game Engine
  2. ^ Irrlicht For S60
  3. ^ Announcement about Irrlicht on iPhone
  4. ^ Irrlicht support forum
  5. ^ Chat on Irrlicht (IRC)
  6. ^ Irrlicht.Net Cross Platform Project Page
  7. ^ Jirr: Irrlicht for Java
  8. ^ Irrlicht for Perl
  9. ^ IrrRuby
  10. ^ Venom: Irrlicht wrapper for Python
  11. ^ IrrLua, A Lua front end to Irrlicht
  12. ^ Irrlicht 4 Delphi
  13. ^ IrrPascal
  14. ^ GMIrrlicht
  15. ^ Interview with the Irrlicht founder
  16. ^ Development team members
  17. ^ Official website of the irrEdit Scene editor
Personal tools