| 安定版リリース | 2.1.5.10 / 2003 |
|---|---|
| リポジトリ |
|
| タイプ | 3D グラフィックス ツールキット |
| ライセンス | GNU劣等一般公衆利用許諾書[1] |
| Webサイト | web.archive.org/web/20170811183842/http://oss.sgi.com/projects/inventor/ |
Open Inventor(旧称IRIS Inventor )は、OpenGLのプログラミングのより高位層を提供するためにSGIが設計したC++ オブジェクト指向の 保持モード3D グラフィックス ツールキットです。その主な目的は、プログラマの利便性と効率性を向上させることです。Open Inventor は、 GNU Lesser General Public License (LGPL) バージョン 2.1 の要件に従い、プロプライエタリ ソフトウェアとフリーおよびオープン ソース ソフトウェアの両方として存在します。
主な目的は、オブジェクト指向 API を導入して 3D プログラミングをアクセス可能にし、開発者が低レベルの OpenGL の複雑さを気にせずに複雑なシーンを作成できるようにすることでした。ツールキットには、シーン グラフ、定義済みシェイプ、自動オクルージョン カリングなどの機能が組み込まれており、シーン管理が効率化されます。Open Inventor が使いやすさに重点を置いたのに対し、同じコンテキストから生まれた OpenGL Performer プロジェクトはパフォーマンスの最適化を重視しました。2 つのプロジェクトは後に、アクセス性とパフォーマンスのバランスを取るために統合され、Cosmo 3D や OpenGL++ などのイニシアチブに至りました。これらのプロジェクトは、さまざまな開発段階と改良段階を経て、3D グラフィックス プログラミング パラダイムの進化に貢献しました。
初期の歴史
1988 年から 1989 年頃、Wei Yen はRikk Carey に IRIS Inventor プロジェクトのリーダーを依頼しました。彼らの目標は、3D グラフィックス アプリケーションの開発を容易にするツールキットを作成することでした。戦略は、IRIS GL が提供する低レベル インターフェイスでは時間がかかりすぎるため、IRIS GL で 3D アプリケーションを開発する人が十分にいないという前提に基づいていました。オブジェクト指向 API の使用により 3D プログラミングが容易になれば、3D アプリケーションを作成する人が増え、SGI にもメリットがもたらされます。そのため、信条は常に「パフォーマンス」よりも「使いやすさ」であり、すぐに「人間のための 3D プログラミング」というキャッチフレーズが広く使われるようになりました。
使用
OpenGL (OGL) は、単純なポリゴンのリストを受け取り、できるだけ速くレンダリングする低レベルのアプリケーション プログラミング インターフェイスです。「家を描く」などのより実用的な操作を実行するには、プログラマーはオブジェクトを一連の単純な OGL 命令に分解し、レンダリングのためにエンジンに送信する必要があります。1 つの問題は、OGL のパフォーマンスがこれらの命令がシステムに送信される方法に非常に敏感であることです。ユーザーは、どの命令をどの順序で送信するかを知る必要があり、結果のイメージに表示されないオブジェクトが送信されないようにデータを慎重に選別する必要があります。単純なプログラムの場合、開始するだけで膨大な量のプログラミングを行う必要があります。
Open Inventor (OI) は、この問題に対処するために作成され、作業を開始するための共通ベース レイヤーを提供します。オブジェクトは、立方体やポリゴンなどの多数の事前ロールされたシェイプからサブクラス化でき、新しいシェイプに簡単に変更できます。描画される「ワールド」は、 OI によって実行されるシーン グラフに配置され、システムはグラフ内のオブジェクトにオクルージョン カリングを自動的に適用します。OI には、シーンに適用するための多数のコントローラ オブジェクトとシステムも含まれており、一般的なインタラクション タスクが簡単になります。最後に、OI は「ワールド」を保存するための共通ファイル形式と、これらのファイルからワールドを自動的に保存またはロードするためのコードも提供します。その後、ツールキットの一部を「グルー」コードで結び付けることで、OI の下で数百行で基本的な 3D アプリケーションを作成できます。
欠点としては、OI は手書きのコードよりも遅くなる傾向がありました。これは、3D タスクは、シーン グラフ内のデータを手動でシャッフルしないとうまく実行できないことで有名だからです。もう 1 つの実際的な問題は、OI は独自のファイル形式でしか使用できないため、開発者が内部システムとの間のコンバーターを記述する必要があることでした。
出演者
Inventor プロジェクトが始まって約 1 年が経つと、異なる哲学が生まれ始めました。SGI システムでアプリケーションを簡単に作成できるようにするという目標から、低速なアプリケーションの作成を困難にするという目標に変更されました。Inventor チームのメンバーはチームを離れ、独自のグループを結成し、OpenGL Performerプロジェクトの基礎を築きました。Performer も内部シーン グラフをベースとしていましたが、必要に応じて速度向上のために変更することができ、保証されたパフォーマンス レベルを維持するために「重要度の低い」オブジェクトやポリゴンを削除することさえありました。また、Performer は、パフォーマンス向上のためにタスクを並列実行するために複数のプロセスを使用し、複数のプロセッサで (1 つのバージョンで) 実行できるようにしました。Inventor とは異なり、Performer は独自のままでした。そのため、SGI は最新のハードウェア機能強化に合わせて必要に応じて API を変更できる柔軟性がありました。
1990年代半ば
1990 年代半ばのある時点で、2 つのシステムを組み合わせて、パフォーマンスとプログラミング可能性の両方を備えた単一の高レベル API を実現できない理由はないことが判明しました。SGI は、2 つのシステムを統合することを目的とした別のプロジェクトに着手し、最終的に Cosmo 3D が完成しました。しかし、Cosmo には、より優れた設計によって回避できたはずの実用的な問題がいくつかありました。
最終的に、これらすべてのアイデアがIntel、IBM、DECとともにOpenGL++の取り組みに結集しました。基本的には Cosmo 3D のクリーンアップされた、より「オープン」なバージョンでしたが、Cosmo の作業は終了し、SGI は OpenGL++ にフルタイムで取り組みました。OpenGL++ の取り組みは長引いて最終的に中止され、SGI はMicrosoftと再び同様のFahrenheitプロジェクトを試みました (これも中止されました)。1994 年に SGI は Open Inventor を 2 つのサードパーティ開発者、Template Graphics Software (TGS) と Portable Graphics にライセンス供与しました。1996 年に TGS は Portable Graphics を買収し、唯一のライセンシーとなりました。
最近の歴史
Inventorは、長年TGS(現FEI)の独占ライセンスの下でのみ利用可能であったが、2000年8月にLGPL オープンソースライセンスの下でリリースされ、SGIから利用可能となった。同じ頃、Coin3D APIクローンライブラリがSIM(Systems in Motion)によってリリースされた。SIMは後にKongsbergグループによって買収され、Kongsberg SIMに改名された。Coinライブラリはクリーンルーム方式でゼロから書かれており、元のSGI Inventorライブラリとコードを共有していないが、互換性上の理由から同じAPIを実装している。Kongsbergは2011年にCoin3Dの開発を終了し、[2]コードをBSD 3条項ライセンスの下でリリースした。
SGIのオープンソースバージョンはメンテナンスされておらず、SGIはライブラリをさらに開発する約束を示していません。ただし、オープンソースリリースはMeVisLab(MeVis Medical Solutions AGとFraunhofer MEVIS)で使用されており、その開発は継続されています。[3] Thermo Scientific Open Inventorは現在も開発中であり、医療用画像処理、医療用画像コンピューティング、3D反射地震学、石油貯留層モデリング用の元のInventor APIに多くの改良が加えられています。
Open Inventor API は、複雑な 3D アプリケーション ソフトウェアの開発のために、世界中のさまざまな科学およびエンジニアリング視覚化システムで現在でも広く使用されています。TGS は2004 年にMercury Computer Systemsに買収されました。2009 年 6 月に Visualization Sciences Group (VSG) として独立しました。2012 年に、VSG は FEI Company に買収されました。FEI Company は 2016 年にThermo Fisher Scientific Materials & Structural Analysis Division に買収され、Open Inventor の開発 (およびサポート) を続けています。
参考文献
- ^ 「SGI - Developer Central Open Source - Open Inventor」。2017年10月19日時点のオリジナルよりアーカイブ。2013年10月25日閲覧。
- ^ 「Coin3D / Coin / wiki / Home — Github」。GitHub 。 2020年3月30日。
- ^ ミーヴィスラボ
外部リンク
- SGI Open Inventor 公式サイト
- Thermo Scientific Open Inventor、API の商用実装
- Inventor ユーザー フォーラムを開く
- Coin3D、APIの独立した実装
- Koin3D、Coin3D の LWJGL ポート
