Open Inventor [by SGI]
最新版2.1.5.10 / 2003年 (21年前) (2003)
リポジトリ
github.com/aumuell/open-inventor
Open Inventor は、C++用のオブジェクト指向保持モード(英語版)3次元グラフィックスAPIであり、SGIがOpenGLのより抽象化されたプログラミング層を提供するべく設計した。当初の名称は IRIS Inventor。プログラマにとってより便利で効率的であることを目標としている。 1988年から1989年ごろ、SGIの重役だった Wei Yen が Rikk Carey に IRIS Inventor プロジェクトを任せた。プロジェクトの目的は、3次元グラフィックスアプリケーションの開発を容易にするツールキットの開発だった。この戦略が決定された背景には、IRIS GL(後のOpenGL)のあまりにも低レベルなインタフェースのせいで3次元グラフィックスアプリケーションの開発に時間がかかり、そのため思うようにアプリケーションが増えないという事情があった。オブジェクト指向のAPIを使って3DCGプログラミングが容易になれば、より多くの3DCGアプリケーションが開発されるようになり、SGIにとっても良い結果になると予想された。したがって、性能よりも使いやすさが優先され、間もなく「人類のための3Dプログラミング (英: 3D programming for humans)」がキャッチフレーズとして広く使われるようになった。 OpenGLは低レベルなライブラリであり、単純なポリゴンのリストを入力として、それらを可能な限り高速に描画する。「家を描画する」といったもっと現実的な何かをしようとすると、プログラマはそれを単純なOpenGL命令列に分解し、それらを逐次的に実行させる必要がある。問題はその命令列の順序であり、OpenGLの性能はどういう順序で命令を与えるかに大きく左右される。そのため、プログラマは最終的な画像では見えない部分を注意深くより分ける必要があった。単純なプログラムであっても、プログラミング量は非常に多くなった。 Open Inventor はこの問題への解決策として開発された。まず、立方体やポリゴンといった基本形状がクラスとして用意され、それらを容易に新たな形状に変形できるようにした。Open Inventor が実行しているシーングラフ
初期の歴史
背景と概要
Open Inventor の欠点は、OpenGLを直接使った場合よりも性能が低下する点である。もう1つの問題は、Open Inventor が自前のファイルフォーマット以外をロードできない点で、開発者は変換プログラムを書く必要があった。 Open Inventor は後に(IRIS GL から OpenGL に名称が変更されたとき)サードパーティへのライセンス提供が開始された。ライセンス提供を受けたサードパーティとして、Template Graphics Software (TGS) と Portable Graphics がある。TGSは後に Portable Graphics を買収したため、唯一のライセンシーとなった。2004年、 ⇒TGSは Mercury Computer Systems に買収され、同社が Open Inventor の開発と保守を継続している。 IRIS Inventor プロジェクトが始まって約1年後、別の考え方が生まれた。すなわち、SGIのシステム上でアプリケーションの開発を容易にするのではなく、性能の悪いアプリケーションを書きにくくするという考え方である。そこで Inventor チームの一部が独立して OpenGL Performer 1990年代中ごろ、Inventor と Performer を分けておく理由はないとの認識が広まり、性能とプログラムの容易性を兼ね備えた高レベルのAPIを開発するプロジェクトが開始された。その成果が Cosmo 3D である。しかし、Cosmo 3D は設計段階がまずかったためか、実用面でいくつか問題を抱えていた。 その後、Open Inventor は TGS がプロプライエタリなライセンスで販売しているだけだったが、2000年8月、オープンソースライセンスでのリリースが SGI から行われた。 ほぼ同じ頃、SIM (Systems in Motion) がAPI互換のクローンライブラリCoin3D
TGS Open Inventor
Performer
1990年代中ごろ
その後の歴史
SGIのリリースしたオープンソース版は今後の開発や保守がどうなるか不透明だったため、ほとんど注目されなかった。
Kongsberg SIM の Coin3D と TGS の Inventor は活発に開発が続けられており、当初のAPIにはなかった機能を追加している(VRML対応など)。
開発された年代はやや古いが、Open Inventor の API は今でもよく使われており(科学や工学での視覚化など)、複雑な3DCGアプリケーションの開発を容易にしていることは確かである。
脚注^ ⇒http://oss.sgi.com/projects/inventor/license.html
外部リンク
⇒SGI Open Inventor 公式サイト
⇒Coin3D, このAPIの独自実装
⇒Open Inventor by FEI, このAPIの商用実装
⇒Kongsberg SIM
⇒Open Inventor Users Forum