オープンSG

Open source graphics software
オープンSG
書かれたC++
オペレーティング·システムWindowsLinuxSolarisOS X
タイプシーングラフ
ライセンスLGPL
Webサイトsourceforge.net/projects/opensg/

OpenSGは仮想現実アプリケーションなどのリアルタイムグラフィックスプログラムを作成するためのシーングラフシステムです。オープンソースの原則に従って開発され、 LGPLライセンスに基づいており、自由に使用できます。Windows 、LinuxSolarisOS Xで動作し、 OpenGLをベースとしています

その主な機能は、高度なマルチスレッドクラスタリングサポート (ソート ファーストソート ラストレンダリングなどのテクニックを含む) ですが、シングル スレッドのシングル システム アプリケーションでも完全に使用できます。

Khronos Groupの一部ではありません

歴史

これは、他の多くのシステムと同様に、1999年にMicrosoftSGIFahrenheitグラフィックスAPIプロジェクトが終了したことでシーングラフが消滅した時期に開始されました。開発者たちが求める機能を備えたシーングラフシステムは市場に存在せず、将来的にも存在しそうになかったため、彼らは独自のシステムを開発することを決意しました。

OpenSGは、 OpenGL Performerに多少似ているものの、全く異なるシーングラフAPIであるOpenSceneGraphと混同しないでください。両者の開発はほぼ同時期に開始され、似たような名前が付けられています。

テクノロジー

OpenSGは他の多くのシーングラフと同様に機能しますが、他のものとは異なる独自の機能をいくつか備えています。状態変更の最適化にかかるオーバーヘッドを削減するブロック状態管理システム、非常に柔軟なトラバーサル、そして実行時のデータ交換やコアデータ構造の拡張を可能にするその他のメカニズムを備えていますが、最も独特なのはマルチスレッドアプローチです。[1]

シーングラフは、数百メガバイトのメモリを簡単に消費する非常に大きなデータ構造を含んでいるため、マルチスレッド化が非常に難しいことで有名です。これらを複製することは、オーバーヘッドが大きいため選択肢にありません。多くのシーングラフは、並列書き込みによるデータ破損を防ぐために個々のノードをロックするだけですが、これは部分的な解決策にすぎません。シーングラフの状態はシーングラフ全体で表され、個々のノードのみを保護すると、依然として一貫性のない結果につながる可能性があります (たとえば、非同期物理シミュレーションを実行するときに、グラフの一部のみを更新すると、部分的なシミュレーション ステップが表示されます)。OpenSG は選択的マルチバッファリングを使用します。これは、頂点配列やテクスチャ イメージなどのバルク データを共有しながら、保護する必要がある各スレッドのグラフの小さな部分を複製し、コピー オン ライト メカニズムを使用してこれらの部分のみを複製します。個々のスレッドの変更の同期は、オーバーヘッドが最小限に抑えられる変更リスト アプローチを使用して行われます。

同じメカニズムにより、非常に柔軟かつ効果的なクラスタリングも実現できます。複数のマシンで実行されているアプリケーションを同期させるには、各フレームの変更のみが各マシンに送信され、ローカルシーングラフに統合されます。これにより、ローカルとリモートの変更の区別はほぼ意識する必要がなくなります。クラスタ上で実行したいアプリケーションは、ClusterWindowを開くだけで、すべての変更をクラスタ全体に配信できます。これにより、配信プロトコルなどの複雑な問題を気にすることなく、 PowerwallCAVEを簡単に操作できます。

人々

このプロジェクトは、Dirk Reiners、Gerrit Voss、Johannes Behr によって開始されました。このプロジェクトには、現在メインのメンテナーとして機能している Carsten Neumann をはじめ、多くの人々の貢献が寄せられています。

参考文献

  1. ^ Voß, G.; Behr, J.; Reiners, D.; Roth2, M. (2002-01-01). 「シーングラフのためのマルチスレッドセーフな基盤とクラスターへの拡張」.第4回ユーログラフィックス並列グラフィックス・可視化ワークショップ議事録. EGPGV '02. エール・ラ・ヴィル(スイス)、ユーログラフィックス協会: 33– 37. ISBN 1-58113-579-3{{cite journal}}: CS1 maint: numeric names: authors list (link)
Retrieved from "https://en.wikipedia.org/w/index.php?title=OpenSG&oldid=1305450070"