三次元描画エンジンの切り替え

三次元描画エンジン

Choreonoidではロボットや環境のモデルを三次元のコンピュータグラフィックス(3D-CG)として描画するための「描画エンジン」を備えています。

これについて、現在以下の2つの描画エンジンが利用可能です。

  1. OpenGL固定シェーダ描画エンジン
  2. GLSL描画エンジン

1は描画用APIであるOpenGLの古いAPIを使うものです。このAPIは20年以上前に策定されたもので、あまり高度な描画を行うことはできません。しかしながら、古いPC環境や、GPUの貧弱な環境、仮想マシン上で動かす場合などでも、利用できることが多いという利点があります。

2はOpenGLの新しいAPIを使うもので、GLSLというシェーディング言語を用いてより高度な描画を実現しています。また描画速度も速くなります。これは現在一般的なGPUであれば概ね利用することができますが、少し古いGPUやOSだったり、GPUドライバがオープンソース版だったりする場合に、完全には動作しないこともあります。また、仮想マシン上でもうまく動作しないことがあります。

Choreonoidはこれまで1を標準としてきましたが、今後2に移行していきたく思っています。現在では暫定的な措置として、デフォルトでは1を使用し、環境変数によって2に切り替えられるようにしています。

基本的には、2が正常に動作する環境であれば、2を使っていただくのがよいです。ただ、Choreonoidが起動しなかったり、描画がおかしくなるなど、うまく動かない部分があれば、1を使うようにしてください。

切り替え方法

描画エンジンの切り替えは、環境変数 "CNOID_USE_GLSL" を用いて行います。

この変数に1を設定しておけば、GLSL描画エンジンを使用します。固定シェーダ描画エンジンに戻したければ、環境変数の設定を解除してください。

注釈

実際にはこの環境変数に対して1ではなくても何らかの値が設定されていればGLSL描画エンジンが有効となります。0を設定したら無効になるというわけではないのでご注意ください。無効にする場合は環境変数自体を削除してください。

Ubuntuの場合

Choroenoidをコマンドラインから起動する際に、

CNOID_USE_GLSL=1 choreonoid ...

などとすれば、描画エンジンをGLSL版に切り替えることができます。この場合は起動の度に描画エンジンを選択できます。

あるいは、あらかじめ

export CNOID_USE_GLSL=1

と設定しておけば、その後起動されるChoreonoidではGLSL描画エンジンが使われます。

これをホームディレクトリの .profile などに記述しておけば、毎回設定しなくてもよくなります。

デフォルトの描画エンジンに戻す場合は

unset CNOID_USE_GLSL

などとしてください。

Windowsの場合

Windowsでもコマンドプロンプトを使えば上記と同様に切り替えることもできるかと思います。

ただしWindowsではコマンドプロンプトの使用は一般的ではないので、通常はシステムの設定として行っておくことになります。

Windows上での環境変数の設定方法は、 ソースコードからのビルドとインストール (Windows編)OpenRTMプラグイン の説明を参考にしてください。