このページでは OpenGL と GLUT を Windows9*/NT
で使う方法について簡単にまとめておきます.
(written 1999/05/--2000/12/; may be obsolete now)
OpenGL を知らない人へ:
まずは
川瀬正樹さんの glclock
を Download して実行してみましょう.その能力を知ることが出来ます.
-
OpenGL:
OSR2以降の Windows95 や 98/NT では OPENGL32.DLL と GLU32.DLL
は標準で入っていますが,
それ以前の Windows95 を使用している場合には
Microsoft の ftp-server から
OpenGL95.exe(OpenGL 1.1)
を入手する必要があります.
-
GLUT:  
Windows95 (たぶん 98/NT でも OK) で
GLUT
を使うには
-
Visual C++ (v. 5.0/6.0)
の場合:
Precompile された Windows 用のライブラリー
(glutdlls37beta.zip)
を展開して, glut32.dll を WINDOWS\SYSTEM\ に,
glut.h と glut32.lib を Visual C++ のしかるべき場所
に置くだけです.
-
C++ Builder 4, 
Borland C++ Compiler 5.5
の場合:
glut-3.7 beta
からコンパイルした
glut32.lib
を用意しました.
implib.exe glut32.lib glut32.dll として Import library を作れば
Visual C++ 用の glut32.dll が使えるはずなのですが,
私の環境 (Thinkpad600+Win95) では atlantis
などのアニメーションものが不安定です.
(これは,私の利用環境による特殊な現象のようです.)
-
gnuwin32
(Cygwin,
Mingw32,
egcs)
の場合: --- Obsolete !!
Import library を作る必要があります.
glutdlls37beta.zip
を展開した場所に
こちら
の Makefile をおき make してください.
libglut32.a が作られますので, libopengl32.a と同じ場所にインストールします.
ついでながら, Cygwin 等に付属の libopengl32.a には OpenGL 1.1 で
標準実装された関数 ( glPolygonOffset や頂点配列関係の関数など )
が登録されていないようです.
同梱の opengl32.def を用いて作り直して
おくことをお勧めします.
gl.h, glu.h は
OpenGL95.exe
のものが使えますが,g++ でコンパイルすると余計な warning が出ますので,
私は FLTK の site で見つけた
ming32gl.zip
のものを利用しています.
# Mingw32 に対しては libglut32.a の static link library 版もあります.
(こちら)
# これをリンクすれば,本体だけで動作する実行ファイルが作れます.
# (もちろん,opengl32.dll, glu32.dll は System に備わっていることが前提)
# Cygwin用も作れますが,どのみち cygwin1.dll がなければ動かないので,
あまり意味は無いでしょう.
-
Books and Sample sources:
参考書は
こちら あるいは
OpenGL-FAQ の日本語訳: Q1-05
を見てください
  (よほど英語が苦手でない限り原書の方を勧めます).
  また,OpenGLとGLUTの基本的な使い方については
和歌山大学の床井先生のページ
がとても良くまとまっています.
サンプルソースコードは
glut37.zip
の glut-3.7/progs/ 以下に沢山入っています.
(advanced, demos, examples, redbook のものは
gnuwin32 でも大抵コンパイル出来ます)
-
Programs:  
OpenGL の勉強がてら作ったプログラムたち
 
glgraph:
(win32-bin(122KB), 
source(38KB))
2次元のグラフを表示するプログラムは
gnuplot
をはじめとしてたくさん
ありますが,データ列を標準入力から渡せば直ちに表示してくれる手軽さと
画面及び Postscript 出力の美しさから,私は
xgraph
が一番気に入っています.
これは,その xgraph の機能の一部を OpenGL + GLUT に移植したものです.
画面以外の出力は Postscript のみ (それも,File 出力だけ),
また,バーグラフは表示できません.
# Windows9*/NT で
CINT
を使っている人は, xgraph.exe の名前でインストールすると
# Windows でも出力ストリーム の "plot" が使えるようになります.
 
mshplot:
(win32-bin (58KB), 
data (206KB), 
source(16KB))
メッシュタイプの頂点データ列を読み込み,3D 表示する単純なプログラムです.
ワールド座標への配置にあたって原点中心のスケーリングしかしないので,
うまく表示出来るデータは限られますが,
そこそこ使える (遊べる) 玩具にはなっていると思います.
サンプルデータとして
Enneper曲面,Klein-Bottle,sqrt(z) の Riemann面,Roman曲面
などを用意しましたので見てやって下さい.
 
wave2d:
(win32-bin(54KB), 
source(8KB))
 
pde1d_01:
(win32-bin(96KB), 
source(7KB))
空間1次元の偏微分方程式から,簡単で見て楽しめるものを選んでみました.
KdV 方程式,調和振動子,非線形シュレディンガー方程式,波動方程式です.
調和振動子の解は解析的には周期的になるはずですが,
この数値解はだんだん形が崩れて行きます.
間違ってもこれを本当の解と思わないでください.
(1999.6.27:   wave eq. を追加しました.Violin のシミュレーションが
けっこう面白いと思います.)
 
cubic:
(win32-bin(57KB), 
source(12KB))
1980年頃(?)に流行った ルービック・キューブ (ツクダオリジナル)
をシミュレートします.
解くモードはありません.自分で動かして解いて下さい(^^;
Windows98 付属の opengl32.dll では照光処理がちゃんと出来ていないようです.
上記
OpenGL95.exe
の opengl32.dll を cubic.exe と同じ場所に置いて実行してみてください.
(どこかにバグを仕込んでしまったんでしょうが,手元に
Windows98 環境が無いので当分直せないと思います.見つけた方は
メールで教えてください.)
いずれも,FreeBSD-2.2.7 上で作成し,最後に Mingw32 で
Win32-実行ファイルを作っています
(こういう使い方ができるのが GLUT の良い所).
mshplot, wave2d, cubic は Visual C++ でもコンパイル出来るはずです.
 
radon:
(win32-bin(144KB), 
source(15KB))
CT-スキャンの原理である Radon 変換をシミュレートします. 
金子先生から FORTRAN のソースをもらい,それを C に直したものです. 
右クリックで Menu がでます. 
OpenGL で書き直してからと思っていましたが,なかなか時間が取れないので
Xlib / Win32-GDI のまま UP します.
-
Links
川瀬正樹さんのページ
床井先生による「OpenGL入門」
OpenGL Home Page(SGI)
GLUT - The OpenGL Utility Toolkit
Nate Robin's GLUT for Windows page
GLUT API version 3 (jp)
OpenGL FAQ (jp)
Archive: opengl mailing list (jp)
Mesa-3D graphics library
GLUI User Interface Library
Vis5D Home Page
Open Geometry (G.Glaeser and H.Stachel)
Real-time rendering (T.Moller and E.Haines)
2000/12/10,  Tsutomu SAKURAI
  < tsakurai[at]rimath.saitama-u.**.** >
2002/05/11,  切れていたリンクを修正