[ C++で開発 ]
プラットフォーム非依存な3次元グラフィックス・ライブラリであるOpenGLをWindows OS上で使用します。コンパイラはVC++を中心に書いていますが、余力があれば他のコンパイラについても触れます。
WindowsでOpenGLプログラムを作成する際に、OpenGL APIを使って生成したグラフィックスを表示するウィンドウをどうコーディングするか、についていくつか選択肢があります。
No. | API 名 | 汎用度 | |
---|---|---|---|
1 | GLaux | 汎用 | |
2 | GLUT | 汎用 | |
3 | WGL | Windows固有 |
Windows Platform SDKに含まれるOpenGL開発キットには、GLauxが含まれています。少し古いOpenGLでは、このGLauxを使うことが多かったようです。最近では、GLauxの替わりにGLUTを使用することがあります。
Windows OSでは、OpenGLライブラリが標準で含まれています。そこで、Windows Platform SDKをインストールすれば、OpenGL開発環境が含まれています。しかし、GLUTは含まれていません。GLUTより少し古い(?)GLauxならば含まれています。世の中のOpenGLの多くのサンプルがGLUTを利用しているので、それをGLauxに移植する必要があり、ソースコードをそれなりに修正しなくてはなりません。ということで、GLUTを用意します。
なお、世の中にはGLUTのC++版GLUIというのもあるようです。
GLUTのWin32移植版が公開されています。
http://www.xmission.com/~nate/glut.html
以下の3つのファイルをコピーします。
ファイル名 | インストール先 | |
---|---|---|
glut32.dll |
%WinDir%\System32 | |
glut32.lib |
<Windows Platform SDKインストール先>\Lib | |
glut.h |
<Windows Platform SDKインストール先>\include\gl |
今回は、Visual C++ Toolkit 2003を使用します。また、Windows Platform SDKを使用します。これらの設定については、Visual C++ Toolkit 2003メモのページを参照下さい。
glut.hだけインクルードすれば、必要なヘッダファイルのインクルードとリンク設定まで行われます。ちょっとトリッキーな気もしますが・・・。
glut.hのおかげで、OpenGL各ライブラリのリンク指定をコマンドライン(やMakefile)で明示的に指定しなくてもよいようになっています。
E:\ex>cl glut_window_ex1.c Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3052 for 80x86 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved. glut_window_ex1.c Microsoft (R) Incremental Linker Version 7.10.3052 Copyright (C) Microsoft Corporation. All rights reserved. /out:glut_window_ex1.exe glut_window_ex1.obj E:\ex>
E:\ex>cl /c wgl_window_ex1.c Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3052 for 80x86 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved. wgl_window_ex1.c E:\ex>link /out:wgl_window_ex1.exe wgl_window_ex1.obj user32.lib kernel32.lib opengl32.lib Microsoft (R) Incremental Linker Version 7.10.3052 Copyright (C) Microsoft Corporation. All rights reserved. E:\ex>
http://www.gimlay.org/~andoh/opengl/faq/openglfaq.html
GLUTを使ったプラットフォーム非依存な解説です。
http://black.sakura.ne.jp/~third/system/opengl/gl.html
和歌山大学システム工学部デザイン情報学科。学生実験テーマ「VR実験」参考資料のGLUTを用いたOpenGLチュートリアル。
http://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html
情報処理教育センター。Linux(MesaGL)上でGLUTを使用したOpenGLプログラミングの第一歩。
http://www.edsys.center.nitech.ac.jp/manual/ogl/
Win32 API/VisualBasic/MFC上でのOpenGL、MaxOS X上でのOpenGLなどの紹介もある。
http://www.geocities.jp/yuichiy2001/gl/index.htm
同社のOpenGL教育コースで使用している「OpenGLプログラミングテキスト」および例題プログラムのコードを無償で公開しています。以下Webページから入手可能です。
http://www.exa-corp.co.jp/solution/VISUAL/OpenGL/index.shtml