OpenGL
|
ライブラリーのインストールRedHat の時代は glut が使われていたが,fedora では freeglut となっている.両方のインストール方法を書いておくが,時代にあわせて fteeglut の方が良いかも・・・ glutFedoraのパッケージにはGLUTが入っていないので、RedHat9用のGLUTをここから検索してインストールします。 "Search for rpms by name"を選び、"glut"と"glut-devel"でそれぞれ検索して出てくるRedHat9用のrpmをダウンロードします。 そして、端末から # rpm -ivh --force glut-*.rpm としてインストールします。 freeglutfreeglutのインストール方法は,以下のとおり. # yum install freeglut-devel # yum install freeglut ウインドウの内容をビットマップファイルへ出力OpenGLを使って表示しているウィンドウの内容を、ビットマップファイルに出力するプログラムです。1ピクセルあたり24bitまたは32bitのデータを出力することができます。 画面表示を行った後に、次のようにかきます。 gl_screenshot gs; gs.screenshot("output.bmp", 24); screenshot() 関数の第1引数には出力ファイル名を、第2引数には画像1ピクセルあたりのビット数を指定します。 2次元波動方程式を差分法で解いて、OpenGLで表示プログラム2次元波動方程式 を解き、波が動く様子をOpenGLを使って表示します。 アーカイブに含まれているMakefileには、Windowsプログラムを作るように書かれています。Linuxでコンパイルする場合は、 CFLAGS = -I/usr/X11R6/include LIBS = -L/usr/X11R6/lib -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm -lpthread のように変更してください。 操作方法
プログラムの簡単な説明diff.cpp、diff.h差分法で波動方程式を解くクラス(Solver)を記述しています。コンストラクタでいろいろなパラメータを決定しています。NTがシミュレート時間の長さ、NXとNYが格子に区切る数です。また、75行目あたりで初期条件を決めています。 meshdraw.cpp、meshdraw.hSolverで計算した結果をOpenGLで表示するクラス(MeshDraw)が記述してあります。142行目あたりの MaterialStruct で、表示する波の材質を決定しています。これは、materials.cpp でいろいろと定義してあります。 |