Irrlicht Engine

Irrlicht Engine（イルリヒト・エンジン）は、C++で書かれたオープンソースの3次元ゲームエンジン。公式にも Windows、macOS、Linux、Windows CE とクロスプラットフォームで動作し、そのオープンな性質からXboxやPlayStation PortableLTE Game Engine、Symbian OSIrrlicht For S60、iPhoneAnnouncement about Irrlicht on iPhone、 Google Native Clientにも移植されている。

Irrlichtは、オブジェクトが小さく、各種ハードウェアへの移植性・互換性が高く、学習が容易で、コミュニティIrrlicht support forumChat on Irrlicht (IRC)が活発である。非公式の各種言語バインディングにより、.NETIrrlicht.Net Cross Platform Project Page、JavaJirr: Irrlicht for Java、PerlIrrlicht for Perl、RubyIrrRuby、PythonVenom: Irrlicht wrapper for Python、FreeBASIC、LuaIrrLua, A Lua front end to Irrlicht、DelphiIrrlicht 4 DelphiIrrPascal、C++ BuildercppbIrrlicht、AutoIt、Game MakerGMIrrlicht などに対応している。

Irrlichtの開発は2003年に Nikolaus Gebhardt がたった1人で始めたInterview with the Irrlicht founder。2006年に 1.0 をリリースすると、開発チームは10人となったDevelopment team members。

 機能・特徴 
Irrlichtは、OpenGL、DirectX 8 および 9、内部のソフトウェアラスタライザ経由での3次元グラフィックスのレンダリングを対応（サポート）している。外部レンダラーやウィンドウシステムは単純なインタフェースでプラグインでき、それによってSDL、iPhone、Symbian OS への対応がコミュニティでなされた。エンジンには標準的なマテリアルレンダラーのライブラリが付属しており、ユーザーのハードウェアが処理できない高度な技法を使っている場合に代替マテリアルを提供できる。新たなマテリアルは実行時にエンジンに追加でき、ユーザー独自のマテリアルを好きなように追加可能である。従来からの固定機能パイプラインのマテリアルに加え、プログラマブルなピクセルシェーダーとバーテックスシェーダー（1.1 から 3.0）、ARBフラグメント/バーテックスプログラム、HLSL、CgおよびGLSLマテリアルを対応（サポート）している。


Irrlichtは豊富なファイルフォーマットを対応（サポート）している。3ds Max のファイル、Quake 2 MD2 モデル、Maya .obj オブジェクト、Quake 3 .bsp マップ、MilkShape 3D のオブジェクト、DirectXの .x ファイルなどをロードし表示できるIrrlicht features on Freashmeat。さらなる3Dフォーマットは外部プラグインで対応（サポート）している。照明、カメラ、3Dオブジェクトは 'Scene Nodes' と呼ばれる木構造として、汎用アニメータで管理されるか、ノードが相互に管理するか、ユーザーが手動で操作する。組み込みの各種ノード型があり、それらを利用して複雑なシーンを描くことができ、新たなノード型を実行時に追加することも容易で、追加ノード型はコミュニティからも供給されている。組み込みのノード型としては、屋外シーン描画用の地形レンダラーや天球、屋内シーン描画用のBSP、骨格ベースのアニメーション用メッシュ、ステンシルシャドウ、ビルボードシステムやパーティクルシステム、水面などがある。

スキンを設定可能な2DGUIがあり、ユーザーは実行時に独自（またはコミュニティ製）のウィジェットをプラグインして使うことができる。Irrlichtのイベントシステムはマウス、キーボード、ジョイスティック、GUIイベントなどを直接扱うことができ、別のライブラリを必要としない。

ファイルシステムアクセスはプラットフォームに依存しないようファイルとフォルダに抽象化されていて、Zipアーカイブ内のファイルにも透過的にアクセスできる。その他の入出力関連機能としては、XMLの読み書き、スクリーンショットをとる機能、画像やメッシュの操作機能、各種ファイルフォーマットでのセーブ機能がある。

Irrlichtは単純な衝突検出機能を対応（サポート）しているが、完全な物理演算エンジンの代替として利用することは推奨されていない。

 拡張 
そのオープン性から多くのプログラマや開発者がIrrlicht用ワールドエディタを開発している。Irrlichtには、現在のシーンをXMLファイルとしてロード/セーブする機能がある。作者である Nikolaus Gebhardt の会社 Ambiera が開発したワールドエディタとして irrEdit Official website of the irrEdit Scene editor がある。まだ初期のベータ版ながら、IrrEditには強力なラジオシティライトマップ生成器とSquirrelスクリプトを使ったインタフェースがあり、Irrlichtを強力に対応（サポート）する。他にも Sourena 3D World Editor などが開発中である。

Irrlichtは音声を対応（サポート）していないため、AmbieraはIrrlichtと連携して使用する音声ライブラリ irrKlang も開発している。irrKlang対応のDLLをirrEditで使うことができ、同等の音声をirrEditでも対応（サポート）できる。

他にもAmbieraはIrrlichtのXMLパーサ irrXML も開発している。

その他の拡張は関連するコミュニティのサイトなどにある。

 関連項目 
 OGRE
 OpenSceneGraph





 脚注・出典 

 外部リンク 
 作者のブログ
 Irrlicht Engine Wiki at irrlicht3d.org
 DevMaster.net details and reviews of Irrlicht
 ドイツのコンピュータ雑誌でのレビュー（ドイツ語）
 南アフリカのゲーム開発雑誌での記事
 Java での Irrlicht 利用についての連載記事
 3-D Graphics Programming with Irrlicht Linux Journal, April 2009
 Irrlicht A GoGO 初心者向けの日本語の解説サイト。現在更新が止まっている。
 ARCANA 日本語対応独自ビルド配布サイト
 Irr Lesson ステップアップ式で学ぶ日本語の解説サイト（バージョン1.4での説明であることに注意されたし。）

Category:グラフィックライブラリ
Category:オープンソースソフトウェア
Category:ゲームエンジン
Category:C++でプログラムされた自由ソフトウェア