Open Inventor

Open Inventor:3次元グラフィックスAPIの進化



Open Inventorは、SGI(シリコングラフィックス)が開発した、C++用のオブジェクト指向3次元グラフィックスAPIです。OpenGLのプログラミング層を抽象化し、より効率的かつ容易な3DCGアプリケーション開発を目指して設計されました。当初は「IRIS Inventor」という名称で、プログラマーにとっての利便性と効率性を追求しました。

初期の歴史



1988年から1989年頃、SGIの重役であったWei Yenが、Rikk CareyにIRIS Inventorプロジェクトを託しました。その目的は、3次元グラフィックスアプリケーションの開発を容易にするツールキットを開発することでした。当時、OpenGLの前身であるIRIS GLの低レベルなインターフェースが、3DCGアプリケーションの開発を遅らせているという課題がありました。そこで、オブジェクト指向APIを用いることで、より多くの3DCGアプリケーションが開発されることが期待されました。使いやすさが最優先され、「人類のための3Dプログラミング」というキャッチフレーズが広く用いられるようになりました。

背景と概要



OpenGLは、単純なポリゴンのリストを入力として、それらを高速に描画する低レベルなライブラリです。しかし、「家を描画する」といった複雑な処理を行うためには、プログラマーがそれをOpenGLの命令列に分解し、実行順序を最適化する必要がありました。特に、描画順序が性能に大きく影響するため、プログラマーは最終的な画像で隠れる部分を考慮する必要がありました。このため、シンプルなプログラムであっても、プログラミング量は非常に多くなっていました。

Open Inventorは、この問題の解決策として開発されました。立方体やポリゴンなどの基本形状をクラスとして提供し、それらを容易に変形できるようにしました。Open Inventorのシーングラフに描画すべき「世界」を配置することで、オブジェクト間の遮蔽が自動的に適用されます。さらに、シーンに適用できるコントローラオブジェクトも提供され、一般的な対話型タスクを容易に作成できます。また、Open Inventorは「世界」を格納するファイルフォーマットを持ち、自動的なセーブとロード機能も備えていました。これにより、簡単な3DCGアプリケーションを数百行以内で作成することが可能になりました。

しかし、Open Inventorには、OpenGLを直接使用する場合と比較して性能が低下するという欠点がありました。また、独自のファイルフォーマットしかロードできないため、開発者は変換プログラムを書く必要がありました。

TGS Open Inventor



Open Inventorは、後にサードパーティへのライセンス提供が開始されました。ライセンスを受けた企業には、Template Graphics Software(TGS)とPortable Graphicsがあります。TGSは後にPortable Graphicsを買収し、唯一のライセンシーとなりました。2004年には、TGSがMercury Computer Systemsに買収され、同社がOpen Inventorの開発と保守を引き継いでいます。

Performer



IRIS Inventorプロジェクトの開始から約1年後、別の考え方が生まれました。SGIのシステム上でアプリケーションの開発を容易にするだけでなく、性能の低いアプリケーションを開発しにくくするという考え方です。そこで、Inventorチームの一部が独立し、OpenGL Performerプロジェクトを開始しました。Performerもシーングラフを持っていますが、性能を重視して更新が行われ、重要でないオブジェクトやポリゴンを描画しないなどの最適化により性能目標を達成できるように設計されました。また、Performerは複数のプロセスで構成されているため、マルチプロセッサ上での動作により性能が向上します。Inventorとは異なり、PerformerはSGI以外にライセンス供与されませんでした。これにより、SGIは自社のハードウェアの進化に合わせてAPIを変更することができました。

1990年代中ごろ



1990年代中ごろになると、InventorとPerformerを分けておく理由はないという認識が広まり、性能とプログラミングの容易性を兼ね備えた高レベルAPIの開発プロジェクトが開始されました。その成果がCosmo 3Dです。しかし、Cosmo 3Dは設計上の問題から実用面でいくつかの課題がありました。

最終的に、これらの成果は、インテルIBM、DECとのOpenGL++の開発に繋がりました。これは、Cosmo 3Dをよりクリーンにしたオープンバージョンであり、SGIはCosmo 3Dプロジェクトを中止し、OpenGL++に注力しました。しかし、OpenGL++は結果的に失敗に終わりました。この時点でSGIはOpen Inventorに関する事業を完全に廃止し、TGSにすべてを譲渡しました。

その後の歴史



その後、Open InventorはTGSがプロプライエタリなライセンスで販売していましたが、2000年8月にSGIからオープンソースライセンスでリリースされました。

ほぼ同時期に、SIM(Systems in Motion)がAPI互換のクローンライブラリCoin3Dをリリースしました。SIMは後にKongsbergグループに買収され、Kongsberg SIMと改称されました。Coin3Dは、クリーンルーム設計で一から開発されており、SGIのOpen Inventorとはコードを全く共有していません。SIMのCoin3Dは、自由ソフトウェア開発向けのGNU GPLと商用開発向けの商用販売ライセンスのデュアルライセンスでした。

SGIがリリースしたオープンソース版は、今後の開発や保守が不透明だったため、ほとんど注目されませんでした。

Kongsberg SIMのCoin3DとTGSのInventorは、活発に開発が続けられ、当初のAPIにはなかった機能(VRML対応など)が追加されています。

開発された年代はやや古いですが、Open InventorのAPIは、現在でも科学や工学分野での可視化など、複雑な3DCGアプリケーションの開発を容易にするために広く利用されています。

外部リンク



SGI Open Inventor 公式サイト
Coin3D, このAPIの独自実装
Open Inventor by FEI, このAPIの商用実装
Kongsberg SIM
* Open Inventor Users Forum

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。