WindowsでOpenGL(GULT)環境を構築した話。

先日 全天球カメラなるものがあることを認識して、これはなんだか面白そうだ、なんかして遊びたい欲が出てきました。
少し考えてみて、OpenGLをつかってテクスチャマッピングとかしたらわりとおもしろそうだと思いました。(球に全天球カメラ映像をマッピング、とか。)

そんなわけで、OpenGLを弄るための環境を構築したのでメモしておきます。
(実際に弄った結果は諸事情により割愛します。)

OpenGLを弄ったことがない人がまず思うのは、「まずはOpenGLをインストール」だと思いますが、・・・というよりは自分がそうだったんですが、まずここが違いました。

実はWindowsにはOpenGLは最初から入っていたんです。

ほんとかよ、と思ったので、自分は「GPU Caps Viewer」というフリーソフトでインストールされているはずのOpenGLのバージョンを確認してみました。
ちなみにZIP版の方がインストール不要で、ぱぱっと確認できていい感じです。

とりあえずGPU Caps Viewerを起動してCPUタブの下の方にあるOpenGLの項目を見てみると、自分の場合は「OpenGL 4.5」と書いてあります。
確かに既にインストールされています。

ということは、我々は既にOpenGLを使える環境だったということです。

ところが、OpenGLは低級なライブラリである為に直接いじるのは大変(らしい)ので、「GLUT」という補助ライブラリを使用してOpenGLを弄ります。
しかしこのGLUT、1998年からver3.7で開発がストップしているようなので、その上位互換版である「FreeGLUT」をつかいます。
(ちなみにWikipedia様によると、GLUT以外にも似たようにOpenGLを補助/拡張するライブラリがあるようです。)

というわけで、さっそくFreeGLUTの環境を整えていきます。
ちなみに「GLUTによる「手抜き」OpenGL入門」様を参考にさせていただいてております。


まずはこちらからFreeGLUTをダウンロードします。
古いバージョンであればダウンロードしたそのままで使えるらしいんですが、FreeGLUT 3.0からはCMakeからのビルドが必要です。
ちょっと面倒だけど、古いライブラリを使うのも気が進まないのでこちらからCMakeをダウンロードしてきます。
Windowsで使うなら、コンパイラも必要です。OpenGLを弄ろうとしてるなら既にインストール済みかとは思いますが、VisualStudioなんかもインストールしておきます。

ダウンロードしたらさっそくビルドします。

まずはCMakeから。


ソースコードの場所は「/freeglut/src」ではなく、「/freeglut」だそうです。
これはフェイントですよねぇ。。。
ちなみに自分は、ライブラリ系はCドラ直下にフォルダ作ってインストールするローカルルールを持ってるので今回もインストールプリフィックスを変更してます。
そして唯一チェックが外れている「FREEGLUT_GLES」はandroid用というか組み込み用のライブラリだそうです。
チェックして損はなさそうだなと思いましたが、私の環境ではチェックするとエラーが出てビルドできなかったので、今回は外しておきます。
設定できたら、Configure → Generate でVisutalStudio用プロジェクトファイルを出力します。

お次はVisualStudioでライブラリのビルドです。
出力されたプロジェクトファイルから起動して、ビルド→バッチビルドから、ALL_BUILDとINSTALLのDebugとReleaseをそれぞれチェックして、一気にビルドとインストールをすませちゃいます。
私の環境ではなんかエラーが出ますけど、必要なものは全部出力されてようですので無視してOKでしょう。


エラーはISNTALLで発生してるようなので、ビルド自体には問題ないみたいです。
ALL_BUILDだけにしとけばエラーは出ませんが、そのかわり自分で必要なライブラリを必要に応じて移動する必要があります。

これでインストールは完了です。
ちなみにサンプルプログラムがあるので試しに shape 辺りをスタートアッププログラムにしてビルド/実行してみるとちょっと楽しいです。(Page up/downで図形が変わる。)

冒頭に書いた全天球画像のテクスチャマッピングは、残念ながら期待したクオリティにならなかったのでお蔵入りです。
いずれ何か面白いものができたら、何か記事にしたいと思います。

それではー ノシ


◇本日のお品◇

自分が参考にしたWebページの書籍化されたものです。
どうやら著者ご本人は「手抜き」が抜けて不満そうですね。
Webより本の方がよい人はこちらをどうぞ。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存