私は弱いPC(クライアント)を持っていますが、許容可能な3Dパフォーマンスを持っています。OpenGLを使用してアプリケーションを2回、つまり一度はローカルで、一度はリモートでクライアント用に実行できる強力なPC(サーバー)を持っていますあります。現在私はssh -X
これに興味がありますが、クライアントのコンソール出力にはソフトウェアレンダリングが使用され、毎秒3フレーム(fps)しか取得されていません。実際、ssh暗号化はLAN上にあるため必要ありませんが、これは私がすでに知っているリモートアプリケーションですが...
それでは、クライアントのパフォーマンスを向上させる方法は何ですか?私の意見は
- ハードウェアアクセラレーションを使用しますが、サーバーまたはクライアントアクセラレーションはどうですか?
- SSHとは違うものを使う
100Mbit / s LANは、複雑な圧縮なしにフル解像度でより多くのfpsを生成することはできませんが、これはWindowsアプリケーションcaです。 800x450なので、圧縮されていないグラフィックデータを使用すると、理論的には12fps(24ビット/ピクセル)が可能です。クライアント自体のGPUや一種のスマート圧縮を使用すると、より良い結果が得られます。
-
編集する私が望んでいたのは基本的にローカルバージョンでした。ライブストリーミングそしてガイケ割引。 Linuxにも似たものがありますか(おそらく無料ですか)?
-
編集2VirtualGLが最高のソリューションであるようですが(現在は私には適していません)、クライアントでもハードウェアレンダリングを実行できるかどうかを知りたいです。
答え1
あなたは見ることができます仮想GL~とTurboVNC100Mbitで20fps @ 1280x1024を提供する必要があります(ウィキペディアを見る)。
OpenGLの使用方法によっては、すべてのアプリケーションで機能しない場合があります。
答え2
これは古い質問ですが、まだ関連しています。ローカルハードウェア上のリモートアプリケーション用のX11 3Dレンダリングを設定し、問題を解決する方法に関するステップバイステップのマニュアルがあります。リモートx11 SSH接続によるOpenGLハードウェアアクセラレーション
この資料では、Chromium BSUゲームを例に説明します。 5-8FPS(SSH接続による基本ソフトウェアレンダリング)、30FPS(間接ハードウェアレンダリングを使用)、> 30FPS(暗号化されていないTCP X11接続を使用)で実行されます。特定のアプリでのみ機能します。
記事の簡単なまとめ
デフォルトのX11サーバー構成では、間接レンダリングとTCP接続が無効になっています。+iglx and -listen tcp
パラメータがこれを有効にします。LIBGL_ALWAYS_INDIRECT=1
X11クライアントで間接レンダリングを強制する変数もあります。
答え3
2台のデスクトップコンピュータがある場合に当てはまります。しかし、家のどこでも利用できる古いWiFiノートブック(例:クライアントとしてUbuntu 10.04がインストールされているTi5600、GTXボードとスペアWi-Fiルーターを搭載したデスクトップPC)がある場合、リモートOpenGLクライアントは良い考えです。
問題は、リモート(サーバー側)OpenGLコンテキストを取得することです。クライアントで ssh -X を実行できます。ただし、リモートシステムでglxinfoを実行すると、ローカルクライアントが作成され、起動した場所に戻ることができます。 DISPLAY環境変数を適切なリモートホストに設定し、その画面を2番目のモニターとして使用できますが、それでも役に立ちません。
別の解決策は、リモートGLXコンテキストを使用できるようにデスクトップアプリケーションを作成することです。
http://arrayfire.com/remote-off-screen-rendering-with-opengl/