Unity 勉強メモ

ゲームエンジンのUnityを勉強するブログです。

WindowsでVisual Studio 2013を使ってGLFW+GLEWプログラムを作る手順

プロジェクトの作成

Visual Studio 2013を起動して、新しいプロジェクトを作成します。

テンプレートからVisual C++の「Win32 コンソール アプリケーション」を選びます。 f:id:lambdataro:20150530042438p:plain

アプリケーションの設定で「コンソールアプリケーション」を選んで 「空のプロジェクト」にチェックを入れます。 f:id:lambdataro:20150530042449p:plain

プロジェクトの設定 (Debugビルド)

ソリューションエクスプローラから作成したプロジェクトを右クリックして、 プロパティを選びます。

構成プロパティの「C/C++」の「全般」の「追加のインクルード ディレクトリ」を 編集して、

$(SolutionDir)include

と入力します。 f:id:lambdataro:20150530042842p:plain

構成プロパティの「C/C++」の「プリプロセッサ」の「プリプロセッサの定義」を 編集して、

GLEW_STATIC

を追加します。 f:id:lambdataro:20150530043551p:plain

構成プロパティの「リンカー」の「全般」の「追加のライブラリ ディレクトリ」を 編集して、

$(SolutionDir)lib

と入力します。 f:id:lambdataro:20150530043910p:plain

構成プロパティの「リンカー」の「入力」の「追加の依存ファイル」を 編集して、

opengl32.lib
glew32s.lib
glfw3.lib

と入力します。 f:id:lambdataro:20150530043836p:plain

プロジェクトの設定 (Releaseビルド)

まず、Debugビルドの時と同様の設定を行います。

Releaseビルドの時は、コンソールウインドウを表示しないように設定したいと思います。

構成プロパティの「リンカー」の「システム」の「サブシステム」を 「Windows」に設定します。 f:id:lambdataro:20150530044128p:plain

構成プロパティの「リンカー」の「詳細設定」の「エントリポイント」を

mainCRTStartup

に設定します。 f:id:lambdataro:20150530044305p:plain

ソリューションディレクトリにGLFWとGLEWの関連ファイルを配置

ソリューションディレクトリにincludeフォルダとlibフォルダを作成します。 f:id:lambdataro:20150530044548p:plain

GLFWのダウンロードページから 「32-bit Windows binaries」をダウンロードします。 たとえ、64bitのOSを使っていてもこの記事の手順で行う場合は、 32bitバイナリをダウンロードします。

ダウンロードしたzipファイルを解凍して、includeフォルダにある GLFWフォルダをソリューションのincludeフォルダにコピーします。

lib-vc2013にあるglfw3.libをソリューションのlibフォルダにコピーします。

GLEWのページから 「Binaries: Windows 32-bit and 64-bit」をダウンロードします。

ダウンロードしたzipファイルを解凍して、includeフォルダにある GLフォルダをソリューションのincludeフォルダにコピーします。

libフォルダのReleaseフォルダのWin32の中にあるglew32s.libを ソリューションのlibフォルダにコピーします。

ソリューションのincludeフォルダは以下のようになります。 f:id:lambdataro:20150530045402p:plain

ソリューションのlibフォルダは以下のようになります。 f:id:lambdataro:20150530045419p:plain

ソースファイルの追加

ソリューションエクスプローラからプロジェクトのソースファイルフィルタを 右クリックして、Main.cppを追加します。

以下のように入力します。

#include <GLFW/glfw3.h>

int main()
{
    GLFWwindow *window;

    if (!glfwInit()) {
        return -1;
    }

    window = glfwCreateWindow(640, 480, "OpenGL Test", NULL, NULL);
    if (!window) {
        glfwTerminate();
        return -1;
    }

    glfwMakeContextCurrent(window);

    while (!glfwWindowShouldClose(window)) {
        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}

ビルド

ソリューションをDebugビルドして実行すると コンソールウインドウと以下のウインドウが表示されます。

f:id:lambdataro:20150530045846p:plain

ソリューションをReleaseビルドすると、コンソールウインドウは表示されません。

http://opengl-tutorial.org をやってみた (その13)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。

はちゅねミクの表示

プログラム

頂点シェーダ

フラグメントシェーダ

コンパイル&実行

$ g++ `pkg-config --cflags glfw3 glew` -o prog13 prog13.cpp `pkg-config --static --libs glfw3 glew`
$ ./prog13

実行結果 f:id:lambdataro:20150527185519p:plain

http://opengl-tutorial.org をやってみた (その11)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。

OBJファイルの読み込み

プログラム

頂点シェーダ

フラグメントシェーダ

コンパイル&実行

$ g++ `pkg-config --cflags glfw3 glew` -o prog11 prog11.cpp `pkg-config --static --libs glfw3 glew`
$ ./prog11

実行結果 f:id:lambdataro:20150527035232p:plain

http://opengl-tutorial.org をやってみた (その10)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。

マウスとキーボード入力

プログラム

頂点シェーダ

フラグメントシェーダ

コンパイル&実行

$ g++ `pkg-config --cflags glfw3 glew` -o prog10 prog10.cpp `pkg-config --static --libs glfw3 glew`
$ ./prog10

実行結果 f:id:lambdataro:20150526210901p:plain

http://opengl-tutorial.org をやってみた (その9)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。

BMPの読み込みとテクスチャマッピング

プログラム

頂点シェーダ

フラグメントシェーダ

コンパイル&実行

$ g++ `pkg-config --cflags glfw3 glew` -o prog09 prog09.cpp `pkg-config --static --libs glfw3 glew`
$ ./prog09

実行結果 f:id:lambdataro:20150526131758p:plain

http://opengl-tutorial.org をやってみた (その8)

opengl-tutorial.org というサイトを参考にOpenGLを勉強しています。

立方体を2個描画

プログラム

頂点シェーダ

フラグメントシェーダ

コンパイル&実行

$ g++ `pkg-config --cflags glfw3 glew` -o prog08 prog08.cpp `pkg-config --static --libs glfw3 glew`
$ ./prog08

実行結果 f:id:lambdataro:20150526072756p:plain