|
VirtualGL は、UNIXやLinuxシステムで実行するOpenGLアプリケーションから専用サーバ上の3Dアクセラレータハードウェアへ3Dレンダリングコマンドをリダイレクトし、ネットワーク上のシンクライアントにその描画出力をインタラクティブに表示するオープンソースプログラムである。 ==課題== 一般的にVNCやUnix/Linux向けのその他シンクライアント環境は、OpenGLアプリケーションの実行に全く対応していないか、あるいはハードウェアアクセラレーション効果なしでOpenGLアプリケーションに描画を強制するかのいずれかである。3Dアプリケーションのリモート表示でハードウェアアクセラレーションを有効にするには、間接的なレンダリング手法を用いる必要があった。 間接レンダリングを実行する場合は、Xウィンドウシステム("X11"や"X")の拡張機能であるGLXを使用してX11プロトコルストリーム中にOpenGLコマンドをカプセル化し、アプリケーションからXディスプレイへと運ぶ。通常、アプリケーションは遠隔地のアプリケーションサーバーで実行され、Xディスプレイはユーザーのデスクトップで実行される。 このシナリオでは、OpenGLの全コマンドがユーザーのデスクトップマシンで実行されるため、そのマシンに高速な3Dグラフィックアクセラレータを必要とする。したがって、この方法で3Dアプリケーションをリモート表示できるマシンの種類は限られていた。 ネットワークが十分に速い場合(たとえばギガビットイーサネット)や、アプリケーションが描画されるオブジェクトのジオメトリーを動的に変更しない場合、アプリケーションがディスプレイリストを使う場合、アプリケーションが大量のテクスチャーマッピングを使用しない場合には、間接レンダリングでも優れた性能を発揮できる。しかしながら、OpenGLアプリケーションの実行環境が必ずしもこれらの条件を満たしているとは限らない。さらに、間接レンダリング環境では動作しないOpenGLの拡張機能があることも事情を複雑にしている。こうした拡張機能は3Dグラフィックスハードウェアに直接アクセスする必要があるため間接的に動作させようがないのである。他にも、ユーザのXディスプレイが必要なOpenGL拡張機能をサポートしていなかったり、あるいはその拡張機能がユーザーのデスクトップマシンに無い特定のハードウェア構成に依存する場合もある。 アプリケーションサーバー上でOpenGLレンダリングを実行すれば、アプリケーションから3Dレンダリングハードウェアへの高速で直接のアクセスが可能となり、間接レンダリングでの問題を回避できる。3Dレンダリングをアプリケーションサーバー上で実行すると、ユーザーのデスクトップに送信するのはレンダリング結果である二次元画像のみとなる。画像はその生成に使用された3Dデータの規模に関わらず同じフレームレートで配信できるため、アプリケーションサーバー上で3Dレンダリングを実行してしまえば、三次元描画の性能は問題ではなくなり、二次元描画の性能だけを気にすればよい。つまり、1〜2メガピクセルの画像データをインタラクティブなフレームレートでネットワーク越しに配信すればよいことになるが、たとえばHDTVのような普及している技術でこれは既に可能となっている。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「VirtualGL」の詳細全文を読む スポンサード リンク
|