CDR6275

Michio SHIRAISHI Official Site


OpenGL+GLSLで学ぶ3次元コンピュータグラフィックス

東邦大学理学部情報科学科 白石路雄
最終更新: 2014年2月20日

1. セットアップ

 サンプルプログラムはこちらからダウンロードできます。

 この文書のサンプルプログラムでは、GLFWと呼ばれるOpenGLによるプログラムを書きやすくするためのライブラリを使用しています。OpenGLそのものにはウィンドウを開く機能はなく、それらはWindowsやOSXといったOS側が提供するものとされています。このようなライブラリを使うと、クロスプラットホームで動くプログラムを簡単に書くことができます。

 このようなライブラリとして著名で歴史も長いのは、GLUTがあります。ただ、床井先生もお書きになられているように、デメリットもあるように思いますので、今回はGLFWを使うことにしました。

 以下で開発環境ごとのセットアップ手法を述べます。

1.1 Windows7でVisual Studioを使う

 Microsoft Visual Studioのダウンロードは、こちらのページから行えます。「Visual Studio Express 2013 for Windows Desktop」をダウンロードしてインストールしてください。また、無償で使い続けるためにはユーザ登録をしてプロダクトキーを入手する必要があります。

 その後、こちらのページからサンプルプログラムをダウンロードして、「build/Windows8_VisualStudio2013/cgp.sln」をダブルクリックして、Visual Studioのメニューから「デバッグ→デバッグ開始」を選択して、実行してください。問題なければ次のようなウィンドウが出るはずです。

 この文章の執筆時では、「Windows 7 Professional 64ビット (ビルド7601:Service Pack 1)」を使用しています。

1.2 OS X(Mac)でXcodeを使う

1.2.1 Xcodeを利用する

 C++のプログラムはXcodeでも開発することができます。Xcodeのインストールについては、インターネット上に様々なドキュメントがありますので、参照してインストールしてください。

 GLFWをインストールするには、Homebrewが便利です。$ brew install glfwでインストールできます。

 サンプルプログラムを実行するには、「build/MacOS10.9_Xcode5/cgp.xcworkspace」をダブルクリックして、Xcodeで実行してください。

 新しいプログラムを書くには、まず「File→New→Project…」からプロジェクトを作成します。「Choose a template for your new project.」と聞かれますので、左側のペインで「OS X」の「Application」を選択し、「Cocoa Application」プロジェクトを作成してください。Productの名前を入力した後プロジェクトを作成します。

 次に以下の変更を加えます。

フレームワークの整理
デフォルトで使うことになっている全てのフレームワークをいったん取り除きます。4つのフレームワークの全てについて、右クリックから「Delete」を選択し「Remove References」を選んで、消してしまってください。次に、プロジェクトの設定画面で「TARGETS」の下のターゲットを選択して次の設定をします。

Other Linker Flags
-lglfw3 -framework OpenGL -framework Cocoa -framework IOkit -framework CoreVideo
Header Search Paths
../../../ext/glfw-3.0.4.OSX/include
Library Search Paths
../../../ext/glfw-3.0.4.OSX/lib
ビルドの設定
homebrewでglfwをインストールすると、/usr/local/以下にインストールされますので、次の設定を行います。「Header Search Paths」に「/usr/local/include」を、「Library Search Path」に「/usr/local/lib」を設定してください。また、「Other Linker Flags」に「-lglfw」と書きます。
ファイルの整理
次に、不必要なファイルを消します。AppDelegate.h、AppDelegate.m、MainMenu.xibは使わないので消してしまいましょう。また、「Supporting Files」の中のmain.mも消します。

 これらの設定が終わった後に、main関数が含まれるファイルを配置すれば、コンパイルできるはずです。