OpenGL で、とあるデータの可視化を行っていたのだが、独特のインターフェースに心が折れた。
他のレンダリングエンジンを探してみたところ、Ogre 3D に興味を持った。
Ogre 3D をビルドし、Tutorial Framework を動かしてみたので、その備忘録を書いておく。
環境は、Windows 7 ultimate SP1 x64、Visual Studio 2010 Professional である。
32bit 版ならば、パッケージが用意されているので、それを使うと良いと思う。
Ogre 3D とは
Wikipedia に詳しく書いてある。
まずは、周辺パッケージをインストールし、その後 Ogre 3D をインストールし、
Tutorial Framework を動かす。
Boost のインストール
32bit ならば、boostpro を使うという選択肢もあるが、64bit では自前でビルドする他ない。
以下のブログエントリで詳しく解説されているので、そちらを参照のこと。
非常に大きなライブラリができるので、数パターン作る必要はないと思う。
とりあえず、以下で作成した。
bjam --toolset=msvc-10.0 address-model=64 --without-python --without-mpi --build-type=complete runtime-link=shared -j4
ビルドが完了すると、stage 以下にインポートライブラリと DLL が出来るので、パスを通す。
インクルードファイルは、パッケージ直下の boost フォルダにある。
#include<boost/~> でアクセスできるようにパスを通しておく。
DirectX SDK のインストール
Microsoft のサイトから、最新のものを落としてきてインストールする。
現時点では、DirectX SDK (June 2010) (英語) が最も新しいようだ。
すでに 2012 年。ここ 2 年は更新されてないということか…。
Zlib のインストール
必須パッケージではないのだが、これを忘れるとよくわからないエラーが出るようである。
Win32 というフォルダのなかに、Makefile.msc というファイルがあるが、記述漏れがありビルドに失敗する。
nmake /f win32/Makefile.msc infback.obj : error LNK2019: 未解決の外部シンボル _inflate_fast が 関数 _inflateBack で参照されました。 inflate.obj : error LNK2001: 外部シンボル "_inflate_fast" は未解決です。 zlib1. dll: fatal error LNK1120: 外部参照 1 が未解決です。
Makefile.msc の OBJS に inffast.obj を追加すればよい。
OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj \ gzwrite.obj infback.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj inffast.obj
ビルドが完了したら、zlib.h/zconf.h を(適当な)インクルードフォルダに、
zlib.dll/zdll.lib を(適当な)ライブラリフォルダに、
zlib1.dll を実行パスの通ったフォルダに配置する。
Dependencies のインストール
Dependencies というライブラリがあるわけではなく、以下のライブラリをまとめたものらしい。
- Cg
- FreeImage
- freetype
- ois
- zlib
- zziplib
Ogre のダウンロードページから入手できる。
OGRE (O-O Graphics Rendering Engine) – Browse Files at SourceForge.net
現時点では、OgreDependencies_MSVC_20101231.zip が最も新しいようだ。
どこでもいいのだが例えば、C:\OGRE に展開し、
src/ の VisualStudio のソリューションファイルをビルド(Release/Debug)する。
ターゲットが x64 となっていることを確認する。
Ogre 3D のインストール
Ogre のダウンロードページからソースコードをダウンロードする。
現時点では、ogre_src_v1-7-4.exe が最も新しいようだ。
C:\OGRE に展開し、ユーザ環境変数 OGRE_HOME に C:\OGRE を指定する。
CMake を実行すると、Dependencies を勝手に見つけてくれるので、
あとは CMAKE_INSTALL_PREFIX を C:\OGRE にし、Generate する。
C:\OGRE に OGRE.sln ができているので、ビルド(Release/Debug)する。
Tutorial Framework の実行
以下の解説通りにやったところ、問題なく動いた。
しかし、実行から表示までかなり長い時間待たされるので、
(精神衛生上)フルスクリーンは解除したほうがいいと思われる。
また、DirectX 10/11 を選択したところ、エラーが出て止まってしまった。
CMake のオプションでも、これらはデフォルトで非選択になっていたので、使わないほうがいいのかもしれない。
以下のブログエントリの拡張を行ってみた。
問題なく動いた。
終わりに
チュートリアルを動かすだけで一苦労であった。これから頑張って中身を理解していかないと…。
今回、Windows Live Writer を使って投稿してみたのだが、行間隔がめちゃくちゃだった。
“ブログ アカウント” の “ブログのオプション”-“詳細設定”-“マークアップ言語” で
“HTML” を選択すると、ただしく反映されるようだ。