以下のページを参考にOpenGLの勉強をしようと思ったが、

環境準備に少し調べごとが必要であったため、導入メモ。

 参考サイト:設定の仕方 - OpenGLプログラミングメモ - atwiki(アットウィキ)

 

1. Visual Studio 2022のインストール

参考サイトでは「2012 Express」を使用しているようだったが、見つからず。

しかたないので、最新版の「2022 Community」を以下でダウンロードし、インストールした。

 Visual Studio: ソフトウェア開発者とチーム向けの IDE およびコード エディター (microsoft.com)

 

2. アイコンライブラリーの入手?

2012版VisualStudioのバグが理由の手順っぽい。

2022版なのでパス。

 

3. freeglutのインストール (というかダウンロード?)

OpenGL初心者の自分はここで少しつまりました。

「ダウンロードはできたけど何すればいいの?」状態。

調べてみると、色々やることがありました。

ただし、環境がある程度出来上がっている状態じゃないとやりづらいので、一旦ダウンロードだけで終了。

 

4. GLEWのインストール (この手順はかなり不安)

参考サイト通りにインストールしていく。

途中「ReleaseのWin32」でビルドしていたが、

VisualStudio2022が64bitっぽいので64bitのまま実行。(これが正しいのかはわかってません。)

.hファイルや、.lib,.dllファイルを格納する手順があるが、

2022版のVisualStudioであるせいか、適当そうな場所が見つからない、、、。

よくわからないのでひとまずそれっぽいところに格納しました。(真似する場合は自己責任でお願いします。)

 解凍フォルダ \glew-1.10.0\include\GL\ にあるglew.h、glxew.h、wglew.hを
 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\include\GL\ 
 にコピー。※GLフォルダは自分で作成。
 解凍フォルダ \glew-1.10.0\lib\Release\Win32\ にあるglew32.lib、glew32s.libを
 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\VS\lib\x64\
 コピー。
 解凍フォルダ \glew-1.10.0\bin\Release\Win32\ にあるglew32.dllを
 C:\Windows\SysWOW64\
 にコピー。

あと、参考サイトだと文字数のエラーが出ると言っていますが、出ませんでした。

おそらく対策済みなのでしょう。

 

5. OpenGL SDKのインストール

参考サイト通りにインストールしていく。

「OpenGLのインクルードフォルダにコピーしてください。」

という説明があるが、

手順4のGLフォルダのことなのか、

後々作成するプロジェクト内のOpenGL用フォルダのことなのか、

どちらかわからなかったため、ひとまず前者のフォルダにコピーした。

 

6. OpenALのインストール

次の手順の「7. ALUTのインストール」のための準備らしい?

しかし、freealut-1.1.0-binが見つからず断念。

そのため、インストールはしているが意味はなさそう。

 

7. ALUTのインストール

freealut-1.1.0-binが見つからず断念。

音に関する環境準備っぽく、個人的に音は不要であったためパス。

 

8. プロジェクトの作成 ※まだ動きません。

やっとここまで来ました。

テキトーにmain.cppファイルを作り、

参考サイト内にあるサンプルコードを使ってビルドします。

私の場合は、空のウィンドウを表示するサンプルコードを使用しました。

しかし、ここで問題発生。

OpenGLのインクルードができてませんでした。(そら当たり前だwww)

ここでまた、「3. freeglutのインストール」でダウンロードしたものに色々する必要が出てきます。

 

9. freeglutの準備

freeglutは「.tar.gz」フォルダですが、私の場合は7zip使って解凍しました。

解凍方法は割愛します。不明な方はググってください。

解凍すると以下のような感じのものが出てきます。(buildフォルダは最初は存在しません。)

以降の手順は下記のサイトを参考にさせて頂きました。

 VisualStudio2017+freeglutでOpenGLを使えるようにする - Corgi Lab. ~備忘録のための技術ブログ~ (corgi-lab.com)

 

9-1. CMakeのインストール

Download | CMake

上記のサイトから、「Windows x64 Installer:」をダウンロードしてインストールする。

 

 

9-2. CMakeを使ってfreeglutのソリューションを作成

freeglutをビルドするための下準備として、

解凍したfreeglutのフォルダ直下に「build」というフォルダを作成しておきます。

こうしておくと、ビルド時の成果物をひとまとめにできて後々便利とのことです。

 

そして先程インストールしたCMakeを起動して、

対象のフォルダとソリューションファイルを作成場所を指定します。

そして「Configure」ボタンを選択。

 

すると以下のような画面が出ます。

今回用意している環境はVisualStudio2022であるため、2022を選択し、「Finish」を選択。

 

このような画面になるため、「Generate」を選択すると

VisualStudio2022で開けるソリューションファイルが作成される。

※参考にしているサイトとチェックマークの場所が異なるが今のところ特に問題はない。

 

9-3. freeglutのビルド

buildフォルダ内の作成したソリューションファイル「freeglut.sln」を開きます。

そして、ビルドをします。

ビルドはDebug版とRelease版両方で実施します。

ビルド完了後に以下が生成されるため、あとは実際に使用するプロジェクトで読み込んで使用すればOKです。

具体的にどう読み込むのかは後述します。

 Debug用

 build/bin/Debug/freeglutd.dll

 build/lib/Debug/freeglut_staticd.lib

 build/lib/Debug/freeglutd.lib

 Release用

 build/bin/Release/freeglut.dll

 build/lib/Release/freeglut_static.lib

 build/lib/Release/freeglut.lib

 Debug、Release共通

 include/GL以下のヘッダファイル全て

 

10. freeglutを作成したプロジェクトで使用可能にする

「8. プロジェクトの作成」で作成したプロジェクトでfreeglutを読み込むように設定します。

以降の手順は先程と同じサイトの以下を参考にさせて頂きました。

 VisualStudioで外部ライブラリを読み込めるようにする方法 - Corgi Lab. ~備忘録のための技術ブログ~ (corgi-lab.com)

 

10-1. ライブラリの置き場を作成してライブラリ格納

まず、先程の手順で作成したfreeglut関係ファイルの置く場所をプロジェクト内に作成します。

そして、それぞれのフォルダにファイルを格納していきます。

私の場合だと以下のような感じです。赤字がfreeglut関係ファイル。

 test
 │  test.sln
 │  tree.txt
 │  
 ├─bin
 │  ├─Debug
 │  │      freeglutd.dll
 │  │      
 │  └─Release
 │          freeglut.dll
 │      
 ├─lib
 │  ├─Debug
 │  │      freeglutd.lib
 │  │      freeglut_staticd.lib
 │  │      
 │  └─Release
 │          freeglut.lib
 │          freeglut_static.lib
 │          

 ├─include
 │      freeglut.h
 │      freeglut_ext.h
 │      freeglut_std.h
 │      freeglut_ucall.h
 │      glut.h
 │          

 └─test
         main.cpp
         test.vcxproj
         test.vcxproj.filters
         test.vcxproj.user

 

10-2. インクルードディレクトリの設定

"プロジェクト"タブの"プロパティ"→"C/C++"→"全般"の

「追加のインクルードディレクトリ」に「$(SolutionDir)include」を記入します。

この設定をするとき、ウィンドウ左上の"構成"を「すべての構成」にすること。

 

10-3. ライブラリの設定

 ※以降の手順では、"構成"を「Debug」と「Release」のそれぞれで設定します。

  記載手順では"構成"を「Debug」とした場合の手順を記載しますが、

  「Release」の設定では「Debug」の記載を「Release」の置き換えて読んでください。

"プロジェクト"タブの"プロパティ"→"リンカー"→"全般"の

「追加のライブラリディレクトリ」に「$(SolutionDir)lib\Debug」を記入します。

 

"プロジェクト"タブの"プロパティ"→"リンカー"→"入力"の

「追加の依存ファイル」に手順10-1で追加した.libファイルを記入します。

 

10-3. 出力ディレクトリの設定

実行ファイルの出力先をdllファイルの置き場所に揃えてあげます。

これによって、ビルドされた実行ファイルがdllファイルを読み込めるようにするようです。

"プロジェクト"タブの"プロパティ"→"全般"の

「出力ディレクトリ」を「$(SolutionDir)bin\Debug\」に設定します。

 

10-4. freeglutに関する設定完了

ここまでで設定完了です。

ビルドが通るようになっていることが確認できると思います。

 

11. サンプルコードを実行してみる

ようやくサンプルコードを実行できます。

先程までの設定でglutのヘッダファイルまでのパスは通っています。

サンプルコードのインクルードをファイル名のみにしてビルド、そして実行します。

ちゃんと空のウィンドウが表示されましたね。

途中の手順で不明点がありましたが、一旦はサンプルコードの実行まで完了できました。

不明点があった箇所に関しては、今後進めていく中で動作が上手くいかなかったりで判明するかと思いますので、その際に見直そうと思います。

では、引き続きOpenGLの勉強を進めていきますか…。