はじめに
OpenGLでリモートレンダリングすることの利点は、描写をサーバー側で行うことでクライアントのX描画の補助ができる!これに尽きます! 例えば、Mujocoなどの重い描画処理をOpenGLでリモートレンダリングすれば、リアルタイムで解析シミュレーションを描画することができます。
目次
1. サーバー側(ubuntu 18.04)の設定
1-1. VNCサーバーのインストール
以下のコマンドでVNCサーバーをインストールします。
$ sudo apt install vnc4server
1-2. virtual GLとturbo VNCのダウンロード
https://sourceforge.net/projects/virtualgl/files/からvirtual GLのダウンロードを行います。
さらに、https://sourceforge.net/projects/turbovnc/files/からturbo VNCのダウンロードを行います。
1-3. dpkgコマンドでdebパッケージをインストール
以下のコマンドでパッケージをインストールします。
$ sudo dpkg -i virtualgl_2.6.2_amd64.deb $ sudo dpkg -i turbovnc_2.2.2_amd64.deb
1-4. virtual GLの設定を行う
以下のコマンドで設定を開始します。
$ sudo /opt/VirtualGL/bin/vglserver_config
以下は設定内容です。
1) Configure server for use with VirtualGL2) Unconfigure server for use with VirtualGLX) ExitChoose:1 <---- [1]を入力してリターン
Restrict 3D X server access to vglusers group (recommended)?[Y/n]n <---- [n]を入力してリターン
Restrict framebuffer device access to vglusers group (recommended)?[Y/n]n <---- [n]を入力してリターン
Disable XTEST extension (recommended)?[Y/n]Y <---- [Y]を入力してリターン
:(中略 :1) Configure server for use with VirtualGL2) Unconfigure server for use with VirtualGLX) ExitChoose:X <---- [X]を入力してリターン
1-5. 再起動
以下のコマンドで再起動を行います。
$ sudo reboot
以上でサーバー側の設定は完了です。
2. クライアント側(Mac OS)の設定
Mac用のvirtual GLをダウンロード
https://sourceforge.net/projects/virtualgl/files/からMac用のvirtual GLのダウンロードを行います。
インストーラーを起動してvirtual GLのインストールをし、その後再起動します。
3. OpenGLによるリモートレンダリングの使い方
3-1. vglconnectでサーバーにアクセス
以下のコマンドでVirtualGL経由でサーバーにログインします。
$ /opt/VirtualGL/bin/vglconnect -XY "username"@"ipadress"
3-2. TurboVNCの起動
以下のコマンドで描画サイズなどを設定し、TurboVNCを起動します。
$ /opt/TurboVNC/bin/vncserver -geometry 1700x700 -depth 24
3-3. 転送する環境変数の設定
以下のコマンドで転送するDISPLAY環境変数を定義します(今回は1番)。X11の指すDISPLAY環境変数の定義を介して、リモートサーバーにXネットワークトラフィックをリダイレクトする場所を認識させています。
$ DISPLAY=:1
終了するときは、以下のコマンドでプロセスをkillします。
$ vnc4server -kill :1
以上で完了です!それでは皆さん、楽しいレンダリングライフを!
参考にしたページ
https://virtualgl.org/vgldoc/2_2_1/
https://gist.github.com/cyberang3l/422a77a47bdc15a0824d5cca47e64ba2