OGRE

OGRE (Object-Oriented Graphics Rendering Engine) は、シーン指向の柔軟な3次元レンダリングエンジンで、ハードウェアアクセラレーションを活用した3Dグラフィックスのアプリケーションを容易に開発できるよう設計されC++で書かれている。Direct3DやOpenGLなどの下位のシステムライブラリの詳細を抽象化したクラスライブラリであり、ワールドオブジェクトなどの高度なクラスに基づくインタフェースを提供する。

OGREのコミュニティは活発で、2005年3月にはSourceForge.netで Project of the Month となった。Ankhなどの商用ゲームでも使われている。

1.0.0 ("Azathoth") は2005年2月にリリースされた。現在リリースされている 1.x.y シリーズは 1.7.2 ("Cthugha") で2010年11月にリリースとなった。MIT License に変更されてリリースされており、自由ソフトウェアである。以前は、修正版 GNU Lesser General Public License でリリースされていた。ライセンスの修正は、LGPLで区別されているライブラリの静的リンクと動的リンクを区別しない（動的リンクの方に合わせて解釈する）という点である。

 概要 
名前が示す通り、OGREは単なるレンダリングエンジンである。したがってグラフィックスのレンダリングに一般的な解決策を提供することを目的としている。それ以外の機能も付属しているが（ベクタークラス、マトリックスクラス、メモリ制御など）、それらはあくまでも補助的なものである。ゲーム開発やシミュレーションの道具がこれ1つで全て揃うわけではなく、音声や物理計算などは別に用意する必要がある。

この点がOGREの弱点と一般に言われているが、このエンジンの利点と見ることもできる。OGREをグラフィックスエンジンとして採用すると、開発者は物理計算、入力、音声といったライブラリを自由に選択でき、OGRE開発チームは各種システムに手間をかけることなくグラフィックスに集中できる。OGREは明示的に OIS、SDL、CEGUI ライブラリをサポートし、Cg ツールキットを含んでいる。

OGREは 1.7.0 から MIT License に変更されてリリースされている。それより前のバージョンではデュアルライセンス（LGPLと OGRE Unrestricted License (OUL)）で配布されている。これは、多くのゲーム機における開発ではフリー/オープンソースのソフトウェアの使用を禁じているため、LGPL以外のライセンスで開発に利用できるようにするためである。

 機能・特徴 
OGREはオブジェクト指向設計であり、容易に機能を追加できるプラグインアーキテクチャとなっていて、モジュール性が高い。

OGREはシーングラフに基づくエンジンであり、各種シーンマネージャをサポートしている。主なものとしては、八分木、BSP、Paging Landscape といったシーンマネージャがあり、他にもポータルベースのシーンマネージャを開発中である。

OGREは各種プラットフォームに対応しており、OpenGLとDirect3Dをサポートしている。コンテンツ制作段階で各プラットフォームの機能を考慮しなくとも、異なるプラットフォームで同じコンテンツを描画できる。このため各種システム向けのゲームの開発の手間が改善される。今のところプリコンパイルされたバイナリ版は Linux、Mac OS X、Windowsの主なバージョン向けに存在している。

OGREは、GLSL、HLSL、Cg、アセンブラで書かれたカスタムシェーダーによる Vertex and Fragment プログラムもサポートする。

地形シーンマネージャは累進的LODをサポートし、累進的LODは自動または手動で生成できる。

アニメーションエンジンは、ハードウェアによる骨格の重み付けスキニングを完全サポートしている。

ORGEには合成マネージャもあり、スクリプト言語やフルスクリーンの後処理で、HDRレンダリング、ブルーミング、サチュレーション、明るさ、ぼかし、ノイズといったエフェクトをかけることができる。また、パーティクルシステムは各種エフェクタやエミッタでカスタマイズ可能である。

ライブラリにはメモリデバッグ機能もあり、アーカイブからリソースをロードすることもできる。

各種3Dモデラー向けのコンテンツエクスポートツールがあり、3D Studio Max、Maya、Blender、LightWave、Milkshape、SketchUpなどに対応している。

OGREの機能の概要全般はこちらにある。

 Google Summer of Code 2006 
Google Summer of Code 2006 でOGREは6人を受け入れ、以下のような既存のエンジンの拡張や新機能の追加を行った。
 アーティストのためのワンステップのソリューションを提供するツール
 RmOgreExporter (v2), FxOgreExporter
 ジオメトリインスタンシングと群衆のレンダリング
 Shadow Mapping System の拡張、デモ作成、文書化
 シーン管理
 Billboard Clouds

 メジャーバージョンの命名 
各バージョンのブランチ名は、「Hastur "ハスター"(0.15.x )」、「Azathoth "アザトース"(1.0.x )」、「Dagon "ダゴン"(1.1.xと1.2.x )」、「Eihort "アイホート"(1.3.xと1.4.x )」、「Shoggoth "ショゴス"(1.5.xと1.6.x )」、「Cthugha "クトゥグア"(1.7.x )」、「Byatis "バイアティス"(1.8.x )」、「Ghadamon "ガダモン"(1.9.x )」 となっており、H・P・ラヴクラフトのクトゥルフ神話に登場する架空の恐ろしい神々の名になっている。

 年表 
 1999年ごろ - Sinbad（Steve Streeting）は自身の DIMClass プロジェクト（オブジェクト指向型の使いやすいDirect3Dライブラリ開発プロジェクト）が高度に抽象化されてきたため、Direct3Dを必須のベースとする必要がないことに気づいた。そこで、APIやプラットフォームから独立したより意欲的なライブラリの計画を開始した。
 2000年2月25日 - SourceForgeにプロジェクトを登録し、OGREという名称とした。もろもろの事情から、まだ開発は始まっていない。
 2005年2月 - Ogre v1.0.0 "Azathoth" を正式リリース。リソースシステムがオーバーホールされた。ハードウェアのピクセルバッファ、HDR、CEGUI、XSIエクスポータをサポート。
 2005年3月 - OGREはSourceForgeの Project of the Month となった。
 2005年11月4日 - OGREを使った最初の商用ゲーム Ankh が発売された。
 2006年5月7日 - Ogre 1.2 "Dagon" を正式リリース。
 2007年3月25日 - Ogre 1.4 "Eihort" を正式リリース。
 2008年8月28日 - Ogre 1.6 "Shoggoth" を正式リリース。
 2010年2月28日 - Ogre 1.7 "Cthugha" を正式リリース。
 2012年5月28日 - Ogre 1.8 "Byatis" を正式リリース。
 2013年11月24日 - Ogre 1.9 "Ghadamon" を正式リリース。
 2017年4月23日 - Ogre 1.10 を正式リリース。
 2018年4月29日 - Ogre 1.11 "Rhagorthua" を正式リリース。

 OGREの移植およびラッパー 
OGREの他の言語やフレームワーク向けの各種バインディングが存在する。例えば、Perl、PureBasic、Python (Python-Ogre)、Ruby (Ogre.rb)、Java (Ogre4j)、.NET (OgreDotNet, MOGRE) などがある。

 関連項目 

 3DCGソフトウェア
  - OGRE 用の非公式 GUIツールキット
RealmForge Game Engine- OGRE の C# 移植版のオープンソースのゲームエンジン  を前身とし、OGRE の .mesh と .scene サポートを継承する。
 Irrlicht Engine
 OpenSceneGraph



 脚注・出典 

 外部リンク 
 OGREプロジェクトサイト
 Steve Streeting のブログ OGRE 3D の創始者

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