2012年11月12日

Blenderのビルド 2

他ごとをしている間にこんな時間になってしまったw

さて、その間もリビジョンはあがり続けたわけだけれども、この記事を書いている時点でr52148が最新。

結局CUDAのバージョンアップしただけで元の通りビルドできるようになったわけだ。

ついでなので前のBLOGの記事も読めなくなったことだし、blenderのWindowsXP32bit上におけるビルド環境、まぁうちの状況について説明しておこうかと思う。

必要なものはそう多くはない、というか個人の主観なので人によって感じ方も違うとは思うけど

1.VC++2008EE(Cyclesの場合CudaのコンパイルがVC経由でしかできなかったため)
2.Python2.7.2(Blender内部は3を使用しているが、コンパイルに関してはそれ以前が必要)
3.Windows SDK for Windows Server 2008 and .NET Framework 3.5(EEだけだとOpenMP使えないので)
4.Apache SubVersion(コマンドラインのやつ。これを使わないとビルドしたものにリビジョン番号が表示されない)
5.nVidia CUDA Tool Kit(うちはver5に上げた)

こんなところかな。

それぞれパスを通してやればいいんだが、blenderのsvnビルドでCyclesやる場合、user-config.pyにCUDAのコンパイラのパスを記述する必要がある。あとはPythonとかはWindowsの環境変数に設定してやってもいいのだけれども、2と3を併用したい人とかもいるだろうからコマンドプロンプトを立ち上げるときにパスを記述したほうが何かと便利がよい。これも以前説明した記憶があるんだが、こんな風にすると後々便利だ。

1.とりあえず環境変数を用意したバッチファイルを作る。

例えばpython2.7.2を使うバッチは

@set path=%path%;c:/python272/bin;

こう書いて、適当なところに保存。
同じようにpython3.2使うなら3.2のbinフォルダへのパスを記述した物を作る。

2.シェルメニューに登録する。

要はそのバッチファイルをエクスプローラの右クリックで立ち上げるようにしておけば、違う種類のpythonをコマンドラインから使えるわけだ。ここの記事の応用なんだけれども、さっき作ったbatファイルを呼び出すわけだ。

cmd.exe /k your/path/python27.bat

これをcommandのREG_SZ、文字列として記述してやればよい。
作ったバッチの分だけ名前を「Prompt py27」とか色々変えて登録すればわかりやすいかと。

まぁここまでの話は当然ビルドするときにどこでsvnを動かすとかそれ以前にちゃんとSVNコミットできる環境を作れる人前提なんだけれどもwその辺がわかんなかったらここ読んでねw ここのBuild Blender with Microsoft Visual C++ and SConsってところに大まかな解説がしてあります。

3.いちいち入力が面倒なのでバッチ作成。

最初はいちいちsvn update だとか打ち込んでたけどだるいのでバッチを作ったし。

cd x:\your_svn_path\blender
@echo off
if %1 == 0 (
@echo on
svn update
cd ../lib/windows
svn update
cd ../../blender
) else (
@echo on
svn update -r %1
cd ../lib/windows
svn update -r %1
cd ../../blender
)

python scons/scons.py --clean
python scons/scons.py
pause


要するにプロンプト立ち上げて「auto 52133」とかやるとr52133をビルドして、最新版にしたいときには「auto 0」と打ち込めばいいというバッチなわけだ。

茶でも飲みながらのんびりビルドを待ちたかったというかw



最後にuser-config.pyについて。

うちはこんな風にしている。

WITH_BF_INTERNATIONAL = True
WITH_BF_OPENEXR = True
WITH_BF_DDS = True
WITH_BF_FFMPEG = True
WITH_BF_OPENAL = True
WITH_BF_QUICKTIME = False
WITH_BF_HDR = True
WITH_BF_OGG = False
WITH_BF_JPEG = True
WITH_BF_OPENJPEG = True
WITH_BF_PNG = True
WITH_BF_TIFF = True
WITH_BF_ZLIB = True
WITH_BF_COLLADA = False
WITH_BF_PLAYER = True
WITH_BF_GAMEENGINE = True
WITH_BF_BULLET = True
WITH_BF_JACK = False # Not for Windows
WITH_BF_SDL = True
WITH_BF_ICONV = True
WITH_BF_LIBMV = False
WITH_BF_RAYOPTIMIZATION = True
BF_RAYOPTIMIZATION_SSE_FLAGS = ['/arch:SSE2']
WITH_BF_FFTW3 = True
WITH_BUILDINFO = True
WITH_BF_CYCLES_CUDA_BINARIES = True
WITH_IK_SOLVER = True
CXXFLAGS = ['/O2', '/EHsc', '/GR', '/fp:fast', '/arch:SSE2']
BF_CYCLES_CUDA_NVCC = "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.0/bin/nvcc.exe"
BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_21']
BF_DEBUG = False
BF_NUMJOBS = 17

色々解説が面倒なので省くけれども、Cyclesを使用する場合はBF_CYCLES_CUDA_NVCCとか関連項目を記述する必要がある。一番上のWITH_BF_INTERNATIONALに関してはr52126のメモのところに書いてある。モーショントラッキングのライブラリはTOMATOブランチだっけかで入れられたわけだけれども、当時うちの環境ではビルドできなかったのでそのままきってあるw

SVNがApacheのコマンドラインのものの場合、WITH_BUILDINFO = Trueとするとリビジョンがスプラッシュに表示される。まぁこれがやりたかったのでTortoiseSVNやめてApacheにしたんだけどね。今使ってるのが何か一目でわかったほうが便利だしw

ということで自前ビルドの参考にでもなればと思い書いてみました。
タグ:Blender CUDA Cycles
posted by MCI_Error at 23:27| Comment(0) | 日記
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: