今日、VC++での64bit環境でGLSLでのシェーダ開発環境を自宅PCに整えたので、そのときの64bit版ライブラリの取得方法などについてメモを残しておきます。ちなみにOSはWindows 7 64bitです。
まず、OpenGLの64bit版を入れます。64bit版のOpenGLのlibファイルはWindows SDKのディレクトリにありました。dllファイルはSystemディレクトリのSysWOW64に入ってましたので、これらのライブラリのパスをうまく通せばOKです。
64bit版のOpenGl32.Libがあるパス例
C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib/x64/OpenGl32.Lib
64bit版のopengl32.dllがあるパス例
C:/Windows/SysWOW64/opengl32.dll
次は64bit版のGLUTを入れます。私は下記サイトよりダウンロードしたものを使いました。
64bit版のfreeglutのダウンロード
http://www.transmissionzero.co.uk/software/freeglut-devel/
最後にGLEWを入れます。下記サイトよりダウンロードして使いました。
64bit版のglewのダウンロード
http://glew.sourceforge.net/
あとはこれらのライブラリを読み込み、リンクするだけなのですが、OpenGLのライブラリはOpenGL32.Libの名前のままだと、うまく読み込むことができませんでした。原因はおそらく同じ名前の32bit版のopengl32.libのパスが通っていて、うまく64bit版の方のライブラリとリンクできなかったことだと思います。OpenGL32.libをOpenGL32_x64.libという名前に変えただけでうまくリンクされるようになりました。OpenGLはいろんなライブラリに付属してくるので、思わぬところで同名のライブラリが存在していたりします。ということで、うまくリンクできない場合は名前被りを疑ってみると解決する可能性があるので、一度試してみるとうまくいくかもしれません。
ちなみに下の画像は私の環境でテストしたスペキュラ入りのトーラスです。スペキュラはフラグメントシェーダの方で記述しています。