Jump to content

Irrlicht Engine

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Borgx (talk | contribs) at 01:30, 22 October 2009 (+id). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Irrlicht 3D Engine
Developer(s)Nikolaus Gebhardt et al.
Stable release
Repository
Written inC++
Operating systemMicrosoft Windows, Linux, Mac OS X, Windows CE
TypeApplication framework
Licensezlib
WebsiteIrrlicht 3D Homepage

Irrlicht (IPA: [ˈɪɐ̯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]. Unofficial bindings for many languages exist including .NET[6], Java[7], Perl[8], Ruby[9], Python[10], FreeBASIC, Lua[11], Delphi[12][13], C++ Builder[14] and even Game Maker[15].

Irrlicht's development started in 2003 with only one developer, Nikolaus Gebhardt.[16] Only after the 1.0 release of Irrlicht in 2006 the team grew to currently ten members, most of them developers.[17]

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.

Irrlicht Per Pixel Lightning

Irrlicht supports a wealth of file formats. It will load and display 3ds Max files, Quake 2 MD2 Models, Maya .obj objects, Quake 3 .bsp maps, Milkshape3D objects, and DirectX .x files.[18] More 3D format support 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.

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 [19] . 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 by itself, 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.

See also

External links

References