OpenGLプログラミングを少し簡単にするヘッダーファイル gluthack.h と
3次元 等数値面(等高面)を描くモジュール isosurf.h の紹介

OpenGL は 3次元汎用グラフィックライブラリの仕様として MS-WindowsでもUNIX X-Window でも広く定着しているライブラリの規格です。 この規格に従ったライブラリが各種OS、コンパイラ用に配布されています。

MS-Windowsの有料のC/C++コンパイラには標準でOpenGLライブラリが付いていると 思いますが、補助ライブラリの glut32.lib が付いていないかも知れません。 その場合はどこかからダウンロードしてください。

UNIXのgccなどにはOpenGLは付いていないので、 Mesa という名の無料OpenGLライブラリをダウンロードしてインストールします。 Mesa は UNIXだけでなく Windows でも Mac でも MS-DOS でも使えるそうです。

OpenGLの入門解説はすでにあちこちのWEBサイトにも書籍に書かれているので 私はもう説明しません。しかし、 私が自分のホームページに掲載している絵を描くために作成してきた OpenGL用のツールをここで紹介します。皆さんのお役に立てればと思います。 以下のファイルは Windows でも UNIX でも動くと思います。ただし 私は UNIX でしか動作を確認していませんが。

OpenGLを簡単に利用するためのファイルです。

さらに等高面(等数値面)を描くためのファイルです。

gluthack.h は私が何年かの年月をかけて少しづつ整えてきた C++用ヘッダーファイルで、OpenGLとglutの関数を簡単に呼び出せるような 関数を提供します。このヘッダーファイルの利用例のサンプルを付けておきます。 このサンプルプログラムは以下のような絵を描きます。

isosurf.h は3次元空間の格子点での値の分布データから、その等高面(等数値面) を描くモジュールです。これの利用例のサンプルを付けておきます。 このサンプルプログラムは以下のような絵を描きます。

コンパイル方法は各自の環境にもよりますが、OpenGLのヘッダーファイルが /usr/X11R6/include/GL/ に、ライブラリが/usr/X11R6/lib/ にある人は 以下のような長いコマンドでコンパイルできます。

g++ -o gluthack gluthack.cc -O3 -I/usr/X11R6/include -L/usr/X11R6/lib -lglut -lGLU -lGL -lXext -lXmu -lXi -lX11 -lm

このページはまだ書き始めたばかりなので、まだ説明がほとんどありませんが そのうち付け足していくつもりです。


渡辺尚貴 naoki@cms.phys.s.u-tokyo.ac.jp