| 可視化ライブラリ | |
|---|---|
| リリース | 2007年5月 7日 ( 2007-05-07 ) |
| 安定放出 | 2.1.0 / 2021年3月10日 ( 2021-03-10 ) |
| 執筆 | C++ |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | 3Dグラフィックス |
| ライセンス | 簡易BSDライセンス |
| Webサイト | visualizationlibrary.org |
Visualization Library ( VL ) は、 OpenGL 4をベースとした 2D/3D グラフィックス アプリケーション向けのオープンソース C++ ミドルウェアであり、 Microsoft Windows、Linux、およびMac OS Xオペレーティングシステム向けの移植性の高いアプリケーションを開発するために設計されています。
ビジュアライゼーションライブラリは、以下の目的で設計されました。
ビジュアライゼーションライブラリの設計は、アルゴリズムとデータ構造の特化と分離に基づいています。これは、いわゆる「ウーバーシーングラフ」ファミリーに属する他の多くの3Dフレームワーク、つまりすべてのレンダリング情報を単一の階層構造に保持する3Dエンジンとは異なります。そのため、ビジュアライゼーションライブラリは、レンダリングパイプラインの各領域を管理するために、異なるデータ構造(階層構造の場合もある)を使用します。
例えば、変換ツリーは別のツリーグラフデータ構造に保持され、シーンの一部であるオブジェクト(Visualization Libraryの用語では「アクター」)は、変換ツリーのノードを自由に参照できます。
アクターは独自のシーン分割データ構造に格納され、そこから視錐台に対する可視性がテストされ、最終的にレンダリング時にレンダリングキューの一部として抽出されます。これにより、VLはPVS、ポータル/セクター、 KdTree、クアッドツリー、オクツリーなど、事実上あらゆる種類のシーン管理手法から独立し、それらを活用することができます。
シェーダーもまた、他のロジックとは独立した概念であり、アクターが階層的なデータ構造を使用する必要はありません。ただし、VLは高レベルサービスとしてShaderNodeクラスを提供しており、これによりユーザーは、uber-scene-graphベースのフレームワークで一般的に使用されているものと同様の継承ルールを使用して、シェーダーを階層的に更新および管理できます。レンダリングパイプラインも同様のモジュール型アプローチを採用しているため、VLコンポーネントを組み立てて再利用することで、高度にカスタマイズされたレンダリング手法を実装できます。
Visualization Libraryの最初の一般公開は2007年5月7日でした。
Visualization Libraryは現在、最初の安定版であるVL 2009.07.640に続く2番目の安定版、VL 2011.05.1140となっています。設計は基本的に同じですが、最新の安定版は、OpenGL 3および4、特にテッセレーションシェーダーのサポート、倍精度ユニフォーム変数、マルチサンプルテクスチャやテクスチャオブジェクトなどの新しいテクスチャフォーマット、広範なフレームバッファオブジェクトのサポート、GLSLを多用するアプリケーション向けのチューニングの改善など、多くの機能強化が施されています。