OpenGLによる3Dプログラミング

なにやら大仰なタイトルをつけてしまいましたが、これからしばらくOpenGLを使っての3Dグラフィックのプログラミングについて書いていきたいと思います。
とりあえずはOpenGLのインストールから。


今回はこちらのGLUTをインストールしたいと思います。
http://www.xmission.com/~nate/glut.htm

OpenGLの利点として、OSに依存しないコードを書けるということがあるのですが、それはOpenGLがシステムとの連携を完全に捨てたためで、OpenGL自体にはウィンドウの表示などの機能はありません。

そこで、結局はシステムの連携部分でOS依存のコードを書かなければいけないのですが、GLUTはそのシステムとの連携部分をまるごとやってくれるというライブラリです。

GLUTを使えば、別環境への移植も簡単に出来ますし、OpenGLの利点を生かすためにも、今回はGLUTを利用したいと思います。



上記サイトからウィンドウズ向けのパッケージを入手します。
これを書いている時点でのバージョンは glut-3.7.6-bin.zip (117 KB) でした。
(このパッケージにOpenGLも含まれているので、ダウンロードするのはこのファイルだけでOKです)

入手したファイルを解凍後、開発環境にOpenGLを設定します。

[Visual Studioインストール先]\VC\include
内に"GL"というフォルダを作成して、glut.h をコピー。

[Visual Studioインストール先]\VC\lib
内に glut32.lib をコピー。

C:\WINDOWS\system32
内に glut32.dll をコピー。

これでOpenGLのインストールは完了です。



それでは早速、OpenGL+GLUTを使ってみます。
Visual Studioのプロジェクトの設定はコンソールアプリケーション、空のプロジェクトとしてください。
main.cppというファイルを作成。
以下をコピーしてビルドしてみてください。
ビルドに成功すればOpenGLが正しくインストールできたことになります。

#include <GL/glut.h>

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glFlush();
}

int main(int argc, char *argv[])
{
    glutInit(&argc , argv);
    glutInitWindowPosition(100 , 50);
    glutInitWindowSize(500 , 500);
    glutInitDisplayMode(GLUT_RGBA);

    glutCreateWindow("Hello, OpenGL");
    glClearColor(0.0, 0.0, 1.0, 1.0);
    glutDisplayFunc(display);
    glutMainLoop();

    return 0;
}

[実行結果]
HelloOpenGL実行結果

glutDisplayFuncで設定された関数が描画イベントごとに呼び出されます。

glClearはglClearColorで設定された色で引数で指定されたバッファを塗りつぶし、glFlushで画面に出力しています。


とりあえず、OpenGLの導入は完了です。
なんかOpenGLのインストールって面倒な印象があったんですが、意外と簡単に出来ますね。