1.glui とは?

glui による表示の例(左側の設定ウィンドウ)
glui とは,OpenGL で利用可能な簡単なウィジェットライブラリです.
以下のような特徴があります.
- OpenGL および glut にのみ依存するため,移植性が高い.
OpenGL と glut が動作する C++ の環境であれば,基本的に同じソースコードが動作します.具体的には Linux, Windows (Visual C++, gcc), Macintosh などが利用可能です.
- glut から自然に移行できる.
glut のソースを大きく変更することなく,ソースに追加していく形で GUI を作成できる.つまりマウスやキーボード,再描画などのイベント(コールバック関数の取り扱いやウィンドウの作成などほぼ全てのglutの関数がそのまま有効であり,利用可能である.
- GUI のデザインが簡単.
ソースコードの記述順に,ボタンやチェックボックスなどの部品が自動的に(左上から)配置されるため,別途,部品を配置するためのファイルやデータの作成,また専用のデザインツールなどが必要ない.
- 研究活動に向いた機能主体である.
立体的なCGを様々な視点から観察する際に便利な,3次元的な回転や平行移動のための専用の部品を持つ.これを利用すると,直接glMultMatrix() で利用可能な行列が与えられるため,クォータニオンなどを知らなくても対象の回転が簡単に出来る.
反面,単純さゆえに以下のような欠点があります.
- 凝ったデザインが難しい.
ソースコードの記述順にボタン等が並ぶだけであるため,自由に部品を配置することが難しい.また,ボタンにアイコンなどの絵を重ねて表示することなどができない.
- 部品の種類が少ない.
ウィンドウ端のスクロールバーや,連続値を入力するスライドバーなどが用意されていない.
しかし研究で用いる簡単なプログラムには十分ではないかと思います.
OpenGL の入門に最もよく使われる glut では右クリックによるメニュー程度しかありませんので,ファイル名などのテキストを入力させるには自ずとコマンドラインに頼りがちになりますが,glui を使えばスマートに組み込めます.また,glut では右クリックをしなければメニューが表示されませんので,ユーザになんらの説明もせずに使わせることは難しいのですが,glut ではボタンなどが配置できるというのもいいところです.
→ 2.glui の概要