OpenGL とは何かを説明するのが難しいので、英語版の Wikipedia の項目の冒頭に書かれていることを引用します。
OpenGL は OpenGL Architecture Review Board (OpenGL ARB) に管理されていましたが、2006 年の 7 月には Khronos Group に移管されることが 決まったようです。 マイクロソフトは 2003 年の 3 月までは OpenGL ARB のメンバーでした。
Microsoft Windows で OpenGL の機能を実現したのは Microsoft によるものが最初で、 Visual C++ には OpenGL 用のライブラリー (glaux.lib, glu32.lib, opengl32.lib) が付いていました。
Visual C++ 2005 Express には直接、付属していませんでしたが、Platform SDK をインストールするとその中に同梱されていました。ところが、 Visual C++ 2008 となってから、(Standard 版、Express 版のいずれの場合も) OpenGL ライブラリーの姿が消えました。
Windows SDK for Windows Server 2008 and .NET Framework 3.5
をインストールすると OpenGL 用の 3 つのライブラリーのうち、補助ライブラリーを 除く 2 つのライブラリーは一応手に入りますが、 補助ライブラリーを使用したプログラムは書くことができなくなりました。 そのため、以下では glut と呼ばれるライブラリーを使用することにします。
JOGL (Java OpenGL)
>OpenGL のための一次変換と射影変換
glut とは OpenGL Utility Toolkit の意味で、 もともと Mark Kilgard によって作成されましたが、 その後、N.Robins によって Microsoft Windows に移植されました。
GLUT-like Windowing Toolkitsglut は初期の OpenGL の機能しか持っていませんが、 3D グラフィックスというものがどういうものであるのかを、理解するには十分な機能があります。
Windows 版 glut のホームページ
http://www.xmission.com/~nate/glut.htmlから glut-3.7.6-bin.zip をダウンロードして解凍します。抽出されたファイルの中で 次のファイルが必要となるものです。
| 種類 | ファイル名 |
|---|---|
| ヘッダーファイル | glut.h |
| ライブラリーファイル | glut32.lib |
| ダイナミックリンクライブラリー | glut32.dll |
ヘッダーファイルやライブラリーファイルは Visual C++ のサブフォルダーにコピーし、 ダイナミックリンクライブラリーは Windows の system フォルダにコピーする方が 便利ですが、一応ここでは何もせずに、直接、プロジェクトフォルダにコピーして 使用することにします。Visual C++ Express 版に関しては次をご覧ください。
Visual C++ 2008 に関して
glut の使用法は上の Windows 版の glut のホームページで手に入る
Documentation for the GLUT API
に書いてあります (PostScript, PDF での入手ができます。ダウンロードして印刷すれば ちゃんと読めます。無論英文です。) また Windows 版の glut のホームページ で手に入るソースコードを展開するとサンプルファイルがありますから、これを眺めるだけでも 使用法がわかります。(拡張子が dsp となっているファイルをダブルクリックすると、 Visual C++ が起動します。ビルドすると大抵実行できます。実行できないものは Windows では動かないもののようです。) GLUT (OpenGL Utility Toolkit) ガイド(日本語版) も 利用可能です:
The OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3 (日本語)
ここで紹介するプログラムは全くの入門用のものであることを, あらかじめお断りいたします。
「Visual C++」 + 「glut」でビルドするには『GLUT とプロジェクト』を参照のこと。
OpenGL の補助ライブラリーの機能が制約されていますから 本格的に使用する場合には glut の方が便利です。 ここでは glut で動画をするための、非常に簡単なことを 紹介します。以下は
「glut」+「Visual C++」--窓を開くまでからの変更に関しての説明です。順に読んでください。 とても簡単です。
- glut で動画 -- その 1
(立方体を表示して、マウスをクリックする度に、立方体を 上下に移動するプログラム)- glut で動画 -- その 2
(「glut で動画 -- その 1」のプログラムに手を加え、 何もしていないときに、 立方体が y 軸のまわりに回転するようにしたプログラム)- glut で動画 -- その 3
(「glut で動画 -- その 1」のプログラムに手を加え、 矢印キーで立方体を回転するようにしたプログラム。)- glut で動画 -- その 4
(「glut で動画 -- その 2」のプログラムに手を加え、 ポップアップメニューを付けるプログラム。)
#include <GL/gl.h> #include <GL/glu.h> =========> #include "glut.h"; #include <GL/glaux.h> |
::auxWireSphere( 0.5f ); ====> ::glutWireSphere( 0.5f, 20, 20); |
Visual C++ の MFC (=Microsoft Foundation Class) を使用した OpenGL プログラミングの 方法は Visual C++ の「ヘルプ」/「検索」 で「OpenGL」を検索すると見つかる 次の英文の文書に記載されている。
- OpenGL I: Quick Start
- OpenGL II: Windows Palettes in RGBA Mode
- OpenGL III: Building an OpenGL C++ Class
- OpenGL IV: Color Index Mode
- OpenGL V: Translating Windows DIBs
- OpenGL VI:Rendering on DIBs with PFD DRAW_TO_BITMAP
- OpenGL VII: Scratching the Surface of Texture Mapping
- OpenGL VIII: wglUseFontOutlines
しかし、これらを直接参考にするよりは
R. Fosner, OpenGL, Programming for Windows 95 and Windows NT, Addison Wesley, ( ISBN 0-201-40709-4 )
(邦訳、ロン・フォスナー、OpenGL, Programming for Windows 95 and Windows NT (日本語版), アジソン ウェスレー ( ISBN 4-7952-9702-9 )
のほうが便利です。 そもそも、Windows での OpenGL は一般的には、 C 言語ライブラリの使用が前提です。そのため、C++ にする利点はあまりないが、 MFC を使用すれば 3 次元フォントなどが簡単に使用できるようになり、 試みてみる価値がある。そこで、ここでは上の Fosner の本をまねして、 実際にプログラムを記述してみることにする。(どれもこれも矢印キーで動くようにしてありますが、 最近のパソコンであれば、窓を全開にしてもストレスなく動きます。Windows Me 以後は OpenGL のスクリーンセーバが付いていますから当然といえば当然です。)
MFC を使用した OpenGL, その 1 (窓を開くまで)
![]()
MFC を使用した OpenGL, その 2 (3D フォント)
![]()
MFC を使用した OpenGL, その 3 (材質カラー)
![]()
少し複雑なオブジェクトを OpenGL 単独で作るのは一般には かなり困難となります。その場合には modeler (あるいは modeller) と呼ばれる ソフトを使うのが普通です。次のページが参考になります。 (「Applications & Games」 の中の「Windows Applications」あるいは「Linux/UNIX Applications」を見る)
以上からリンクをたどれますが、
AC3D
はよく知られたモデラーの一つです。これは以前はシェアウェアーでしたが、 今では商用ソフトになっており、 現在では 14 日間しか自由に使用できません。 AC3D に関しては次のページで説明をしています。
AC3D
なお、このページで使用している AC3D はシェアウェアーの時代のもので、 現在のバージョンとは少し違っているかもしれません。シェアウェアの時代にも 正式版は有料で確か現在と同じ 50 ドルでした。とても魅力的だったのは サイトライセンスが 500 ドルだったことです。(この値段で何台のパソコンでも 使用することができました。) 今でも educational license があるようですから、 ひょっとするとまだ教育機関向けには安くしてもらえるかも しれません。(e メールで問い合わせないといけないようです)