OGRE (Object-Oriented Graphics Rendering Engine) は、シーン指向の柔軟な3次元レンダリングエンジンであり、ハードウェアアクセラレーションを活用した3Dグラフィックスアプリケーションの開発を容易にするために設計されています。
C++で記述されており、
Direct3Dや
OpenGLなどの低レベルシステムライブラリの詳細を抽象化し、ワールドオブジェクトなどの高度なクラスに基づいたインターフェースを提供します。
OGREの概要
名前が示すように、OGREは純粋なレンダリングエンジンです。グラフィックスのレンダリングにおける一般的な問題を解決することを目指しています。他の機能(ベクタークラス、マトリックスクラス、メモリ制御など)も提供しますが、これらはあくまで補助的なものです。ゲーム開発やシミュレーションに必要なすべてのツールを提供するわけではありません。たとえば、音声や物理計算は別途用意する必要があります。
この点はOGREの弱点と見なされることもありますが、同時に長所とも言えます。OGREをグラフィックスエンジンとして採用することで、開発者は物理計算、入力、音声といったライブラリを自由に選択できます。OGRE開発チームは、他のシステムに煩わされることなく、グラフィックスに集中できます。OGREは、OIS、
SDL、CEGUIライブラリを明示的にサポートし、Cgツールキットも含まれています。
OGREは1.7.0からMIT
ライセンスでリリースされています。以前のバージョンはデュアル
ライセンス(LGPLとOGRE Unrestricted License (OUL))で配布されていました。これは、多くのゲーム機開発でフリー/オープンソースソフトウェアの使用が制限されているため、LGPL以外の
ライセンスでも利用できるようにするためでした。
機能と特徴
OGREは
オブジェクト指向設計であり、
プラグインアーキテクチャによって機能拡張が容易で、モジュール性が高いです。
シーングラフに基づくエンジンであり、
八分木、BSP、Paging Landscapeなどのシーンマネージャをサポートしています。ポータルベースのシーンマネージャも開発中です。
OpenGLと
Direct3Dをサポートし、異なるプラットフォームで同じコンテンツを描画できます。これにより、さまざまなシステム向けのゲーム開発の手間が軽減されます。プリコンパイルされたバイナリは、
Linux、macOS、Windowsの主要バージョン向けに提供されています。
GLSL、HLSL、Cg、アセンブリで書かれたカスタムシェーダーによるVertex and Fragmentプログラムをサポートします。
地形シーンマネージャは、累積的LODをサポートしており、自動または手動で生成できます。
アニメーションエンジンは、ハードウェアによる骨格の重み付けスキニングを完全にサポートしています。
合成マネージャもあり、HDRレンダリング、ブルーム、彩度、明るさ、ぼかし、ノイズなどのエフェクトを
スクリプト言語やフルスクリーン後処理で適用できます。また、パーティクルシステムは、さまざまなエフェクタやエミッタでカスタマイズできます。
ライブラリにはメモリデバッグ機能があり、アーカイブからリソースをロードすることもできます。
3D Studio Max、
Maya、
Blender、
LightWave、Milkshape、
SketchUpなど、さまざまな3Dモデリングソフトウェアに対応したコンテンツエクスポートツールがあります。
OGREの機能に関する概要は
こちらで確認できます。
Google Summer of Code 2006では、6人の学生がOGREプロジェクトに参加し、以下の拡張機能や新機能を追加しました。
アーティスト向けのワンステップソリューションを提供するツール(RmOgreExporter (v2), FxOgreExporter)
ジオメトリインスタンシングと群衆レンダリング
Shadow Mapping Systemの拡張、デモの作成、ドキュメント化
シーン管理
Billboard Clouds
メジャーバージョンの命名規則
OGREの各バージョンのブランチ名は、「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に依存する必要がなくなったことに気づき、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ソフトウェア
CEGUI - OGRE用非公式GUIツールキット
RealmForge Game Engine - OGREのC#移植版オープンソースゲームエンジン。Visual3D Game Engineを前身とし、OGREの.meshと.sceneサポートを継承する。
Irrlicht Engine
OpenSceneGraph
SpeedTree
Visualization Library
外部リンク
OGREプロジェクトサイト
*
Steve Streetingのブログ - OGRE 3Dの創始者