2010年5月27日木曜日

FreeStyleとbpyのリファレンスを更新してみた。

FreeStyle統合版が更新されていたのでそれに合わせて
sphinxに新しくリファレンスを吐いてもらう。
PDFで最新のリファレンスがお手軽に参照できるのは便利。

で、いつものようにアップしてみました

今回のFreeStyleのアップデートで異なるマテリアルの境界にエッジが出せるように
なってたのが本当に驚いた。

FreeStyleでのエッジ描画はビューマップが起点になっているので、結局はメッシュ
というかジオメトリデータに依存している部分が大きくてマテリアル境界の描画を
実装するのは難しいのかもー、なんて勝手に思い込んでいたわけで。

あと面の交差角度を指定してエッジの出方を調整できるようにもなってたりとか。
これもメカものには便利そう。

このへんのFreeStyleの強化に合わせて、2.5系に2.49b同等のPyNodeが復活
してくれたりしたら、かなりすごいことになりそうで楽しみ。

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手

2010年5月12日水曜日

Ubuntu10.04でLuxRenderをビルドしてみる

基本的には公式wikiにあるUbuntu9.04/9.10向けの解説を参考に進めてけばOK。


ただ問題なのがBoost関連の設定。
aptでインストールしようにも現時点で提供されているバージョンは1.40。
LuxRenderで要求されているのは1.41。

でうまくいったやり方はとりあえず2通り。
A:バージョンを無視する。
B:Boostのソースを入手して使う


まずはAのパターン

LuxRenderのCMakeLists.txtを開いてBoostの有無を確認している箇所を探す。
そこで
FIND_PACKAGE(Boost 1.41 REQUIRED COMPONENTS python)
となっているのを
FIND_PACKAGE(Boost 1.40 REQUIRED COMPONENTS python)
としてバージョンを書き換えてしまう。
同じような箇所が直後にもう一行あるのでそっちもバージョンを書き換える。

という感じで2ヶ所書き換えたら
$ cmake -G "Unix Makefiles"
$ make luxrender
で完了。

要求されているライブラリのバージョンを無視しているわけですが
とりあえずビルドできて今のところちゃんと動いている模様。
これはちょっと気持ち悪いなぁという方はBのパターンへ。


で、Bのパターン

Boostのソースをもらってくる。上記wikiの解説では1.42.0をもらってきているので
それをもらってくる。

ソースのアーカイブを展開
$ tar zxvf boost_1_42_0.tar.gz
$ cd boost_1_42_0
Boostのコンパイル
$ ./bootstrap.sh
$ ./bjam --layout=system stage
まではwikiの解説どおりでOK。

上で出来上がったBoost1.42をインストールするのが簡単なんだろうけど
システムはaptで管理させておきたいのと、なるべくUbuntu10.04標準の状態に
しておきたいのでBoost1.42はインストールせずにLuxRenderのビルドだけで
使用するようにしたかったわけで。

となるとちょっと面倒でwikiの解説に
If you did not install Boost 1.42 to your system, you will need to edit
lux/CMakeLists.txt to change the name of the Boost libs to those you just built.
とあるとおりCMakeLists.txtでのBoost関連の設定をいじらないといけない。

で、どこをどう修正したらいいかは説明されていないorz
とりあえずだめもとでCMakeLists.txtを修正せずにmakeすると、リンク時にBoost関連と
思われるエラーが大量にでる。

いろいろ試した結果、CMakeLists.txtの
IF(Boost_FOUND)
    MESSAGE(STATUS "Boost library directory: " ${Boost_LIBRARY_DIRS}
    MESSAGE(STATUS "Boost include directory: " ${Boost_INCLUDE_DIRS}
ELSE(Boost_FOUND)
の部分を
IF(Boost_FOUND)
    SET(Boost_LIBRARY_DIRS ../boost_1_42_0/stage/lib)
    SET(Boost_INCLUDE_DIRS ../boost_1_42_0/boost)
    MESSAGE(STATUS "Boost library directory: " ${Boost_LIBRARY_DIRS}
    MESSAGE(STATUS "Boost include directory: " ${Boost_INCLUDE_DIRS}
ELSE(Boost_FOUND)
という感じに変更して用意したBoost1.42のライブラリとインクルードファイルの
ディレクトリを指定してやればOK。

あとはwikiの解説を参考にすれば出来上がり。
さあ、これで最適化ビルドが作り放題だw

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手

2010年5月11日火曜日

blender2.52 Freestyle統合版のbpyリファレンス更新。

blender2.52 FreeStyle統合版が更新されていたので、それに合わせて
Sphinx-buildで出力したbpyリファレンスも更新してみました。

今回はPDF版のみ。

以前出力したときはOSXでしたが、今回はUbuntu10.04でやってみました。
基本的にはpython3でビルドされたblenderとSphinxがつかえるpython環境
があればいいみたい。Sphinxとpythonもpython3じゃないとダメかと思ってたけど
python2.6でOKでした。

PDFで出力する場合にはtexliveのパッケージを関連パッケージも含めてとりあえず
全部入れておいた方が良さげ 。

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手

2010年5月10日月曜日

LuxRenderと便利な箱。

ちょっとしたテストや作成中のモデルの確認のためにレンダリングするという状況は
ちょくちょくあるかと思います。面倒なのでとりあえず床に板ポリ一枚置いてレンダ、
でもいいんですが、LuxRenderの場合簡単な箱を一つ作っておくとちょっと便利。

例えばこんな感じ。
板ポリ一枚の床に適当なオブジェクトのシーン、ライトはスカイライトとスポットライトの二つ。




レンダリング結果はこんな感じ。




上と同じオブジェクトとライトを箱の中にいれたシーン



箱には手前の面にだけ穴を開けて窓を作っておきます。
レンダリングするとこんな感じに。



ライトを調整せず、そのまま室内にしてしまったのでややノイズが目立ちますが
一応それなりに室内のシーンっぽく見えます。
さらに照明のライトグループを分けておくとライティングの調整も簡単にできて便利。

室内のスポットライトを消すとこんな感じ。




外のスカイライトを消すとこんな感じ。




ライトグループの調整なのでレンダリングをやり直す必要も無し。とてもお手軽。
今回は適当な箱ですが床のマテリアルを変えたり室内の照明を工夫してもよさげ。

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手

2010年5月8日土曜日

blender2.5でもLuxRenderが利用可能に。

いつのまにかLuxRenderのblender2.5系対応のエクスポータ、luxblend25の開発版が
動作するようになっていたのでさっそく試してみました。


以前試したときはluxblend25のインストールや設定の仕方さえ情報が少なく
よく分からなかったのですが公式wikiに解説ページが追加されていました。

さらに、これまでluxblend25を動作させるにはpyluxモジュールが必要でした。
pyluxは公開されている配布パッケージには含まれておらず自分でビルドする必要が
あったのですが、pythonとboostの設定がうまくいかず、ビルドに苦労していました。

が、luxblend25の開発が進みpyluxを使用せずにluxrenderの実行ファイルを使用して
レンダリングを行うモードが追加されました。
このモードでは2.4系のluxblend同様にblenderのシーンをLuxRender形式のファイルに
エクスポートしてluxrenderでレンダリングを行う、という流れで処理が進むようです。

というわけでluxblend25を使用するための手順は以下のような感じになります。


1. ExporterFrameworkの導入

まず初めにExporterFrameworkを入手します。
mercurialがつかえる環境ならば

$ hg clone http://ef.beulahelectronics.co.uk/hg/ef ExporterFramework

と実行すればOK

そうでなければ上記のURLをブラウザで開いてzipなりtbzなり適当な形式で
ダウンロードして展開しておく。

次にExporterFramework/efのディレクトリをまるごと.blender/scripts/io以下にコピー。ExporterFrameworkの導入はこれで完了。



2. luxblend25の導入

こちらもやることは同じ。
$ hg clone http://src.luxrender.net/luxblend25 luxblend25

もしくは上記のURLをブラウザで開いて(以下略。

次にluxblend25/src/luxrenderのディレクトリをまるごと.blender/scripts/io以下にコピー。
これでluxblend25の導入は完了。



3. 設定

上記の導入が正しく行われていればblenderを起動するとウインドウの一番上の
ドロップダウンメニューで選択可能なレンダラの一覧にLuxRenderが追加されているはず。
こんな感じ。




そのメニューでLuxRenderを選択しておくとプロパティウインドウにLuxRenderについての
設定項目が追加で表示されます。



その中で上の図で囲みの部分の2項目を最低限設定しておく必要があります。
Run Rendererにチェックを入れて、Path to LuxRenderにLuxRenderの実行ファイルのパスを
設定します。パスは2.4系のluxblendの設定と異なり実行ファイルのファイル名も含めて指定
する必要があるようです。
なので パスは/home/Taro-Y/bin/luxrender-0.7rc2/luxrenderという感じになります。
Windowsであれば最後はluxrender.exe、OSXであればluxrender.appになります。



4. レンダリング

レンダラにLuxRenderを選択し、必要な設定が済んでいれば普段どおりにF12キーや
レンダボタンを押すとシーンがエクスポートされ、LuxRenderが起動しレンダが始まります。
うまくいかない場合はコンソールにログが出ている場合もあるのでそちらを参考に。

こんな感じにでそれなりにレンダできます。




というわけでblender2.5系でもLuxRenderが利用できるようになったわけですが
現在開発中ということもあり従来のluxblendと比較すると実装されていない機能も
まだまだ多くあるという印象です。

おおまかにLuxRenderのレンダエンジンの機能のうち、従来のluxblendから利用できる
機能は80%ほど、それに対してluxblend25からでは30%ほどといった感じでしょうか。

現状ではそんな感じですが、LuxRender v0.7RC2のリリースノートを見ていたら
While working on this release, dougal2 and Gensher fired the boosters
on LuxBlend 2.5, it's not yet ready for prime time but should be for
next RC in about 1 month.
ということらしいのでluxblend25関連は、次のRC3ではいろいろ期待できそうです。


---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手

2010年5月6日木曜日

LuxRenderのアルファマップ

というわけでリリースされたばかりのv0.7RC2を新マシンでいろいろ試しています。

ちょっと気になるのがluxblendからのエクスポートがたびたび失敗すること。
正確にはlxsやlxo等のLuxRenderネイティブのファイルの書き出しは成功している
んですが、その後にレンダリングが始まらない。
手動でluxrenderを起動してファイル読ませればいいんですが、ちょっと面倒。

また、たまに書き出し自体がうまくいってないような状況にも遭遇。
これは以前の0.6とかの頃にもちょくちょくあったのですが、そんな時は既存の
エクスポートされたファイルを削除してから再度エクスポートするとよさげ。

OSが違うせいなのかLuxRenderやluxblendに依存してる問題なのか分からないが
レンダリング自体に特に問題はないので、まぁいいや。

で、こうやっていろいろやり始めるといつも記憶が曖昧になるのがLuxRenderでの
アルファ抜きのやりかた。blenderのレンダラとはちょっと違ってマテリアルのmixを
使わないといけないのでセットアップをよく間違えるのでメモ。

アルファマップのテクスチャはこれ。




でluxblendでのマテリアル設定はこれ。




そうするとこんな感じになる。




やってみれば大したことないけど、よく忘れるw

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手

2010年5月4日火曜日

LuxRender v0.7 RC2がリリースされた模様。

連休中に来るんじゃないかと期待していたRC2がリリースされました。

リポジトリには既に昨日の時点でRC2が公開されていましたが、各OS向けの
バイナリ版も無事に公開されたというわけで。めでたい。

リリースノートとダウンロードはこちら



RC1からの変更としては

・QtによるGUIの改善
RC1で幾つかのOS向けにGUIをQtで実装したバージョンが配布されるように
なりましたが、今回からWindows版もQtによるGUIが提供されるようです。
GUIの内容や動作の修正もあるようです。

・LuxBlendの多数のバグフィックス。インスタンスとヘアーのサポート
インスタンスは以前からサポートされていましたが、モディファイヤが使用
されていたり、マテリアルがオリジナルのオブジェクトから変更されていると
インスタンスとして処理が適用されないという制限がありました。
今回この2つの制限がなくなったとのこと。これに関してのスレッドはこちら

ヘアーのエクスポートはv0.7のリリースには間に合わせる予定、という話を
RC1公開直後にフォーラムで目にした気がするのですが、まさかfinalでなく
RC2に間に合わせてくるとは。恐るべし。

ヘアーと記されていますがスタティックパーティクルがエクスポートされる
ようになったので髪以外にも草原や細い針金などの表現にも利用出来るかと。
この話題に関するスレッドはこちら

・FreeImageライブラリの導入により多くの画像フォーマットに対応
おそらくイメージテクスチャとしてLuxBlendなどのエクスポータのGUIで
指定できる画像の種類が増えたということではないかと。

・レンダーコアのクラッシュやメモリ消費の改善を含むその他多くのバグフィックス

といった感じ。


RC1に比べ、LuxBlendはインスタンスとヘアーの対応など機能の追加が目立つ反面
レンダコアに関しては機能追加よりも安定性の改善とバグフィックスを重視している
ようです。まあRCなんで落ち着いていってもらわないと。

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手

2010年5月3日月曜日

レンダリング用に新マシンを作ってみた

Corei5採用のMacBook Proを普通に店頭で見かけるようになり、在庫や価格も
安定してきたようなので、メインに使っているMacBookを買い替えようかと少し悩む。

が、Snow Leopard導入とSSDへの換装で非常に快調だったり、大抵の作業は
今のMacBookで済んでいることを考えると買い換える程でもないなーとの結論に。
買い替えは来年にすることにして、買い替えのためにしておいたMacBook貯金の
使い道を考えた結果

・最新のLTS版であるUbuntu 10.04がリリースされた
・LuxRenderのv0.7RC2がそろそろ来そう
・blenderを中心とした各種レンダリングがもう少し早くなるとうれしい

ということでblenderやLuxRender向けにCG専用マシンを作ってみた。
OSはUbuntu10.04でいいとして、CPUは物理4コアかつ低消費電力版が安価に入手
可能なAMD PhenomII X4 910eを選択。M/Bはmini-ITXのIPC-AM3DD785Gにしてみる。
グラフィックはチップセット内蔵、HDDはMacBookのSSD換装で余った2.5インチのもの。

もうしばらくすると880G採用のM/Bも出てきそうだったり、そもそもこの時期に
新規にマシンをつくるならX6を選ぶという選択もあるだろうけど

・熱いのは嫌。
・でかいケースは嫌。
・X6ほどの性能はいらない
・各種ベンチマークを見る限り880Gも785Gも大きな性能差はなさそう
・785Gと910eの枯れ具合が良さげ。

というわがままを貫いて小さなmini-ITXのケースに収まって160WのACアダプタで
動いてる無茶なマシンが出来上がりましたとさ。めでたしめでたし。

OSのインストールもディスクを入れてインストーラーに従うまま、特に問題無く終了。
インストール完了後ログインするとプロプライエタリなドライバの使用を問われるので
ドライバを変更して、ついでに日本語環境の追加パッケージのインストールも行って
再起動。あまりに簡単すぎて拍子抜けするw

blenderとLuxRenderはとりあえず公式の配布版をもらってきて展開。

で早速テスト。以前40分かけてレンダリングしたシーンが15分でこの状態。




以前と同じ設定にするのを忘れて、屈折光の分光というかスペクトルが有効になってたり
ノイズ処理を適用し忘れたり、と不利な条件になっていてもこの速さ。
LuxRenderがv0.6からv0.7にバージョンアップしている分も考慮しても比べ物にならない状況。

自分の環境に合わせて最適化したビルドを作れば、さらに10%程は早くなりそうだったり
もちろん既存のマシンとあわせてレンダファームとして使っても良いわけで。
いろいろこの後の展開が楽しみ。


冒頭で触れたLuxRenderのv0.7RC2も、LuxBlendのバージョンストリングがすでにRC2が
用意されていたり、これまでのRC段階でのリリースは大体3~4週間で更新版が公開されて
いることを考えるとこの連休中に来てもおかしくない状況です。

AMD、Intel共に新CPUがリリースされたこともあり、パソコン自作してblenderとか始めようかな
と考えてる方にはこの連休はちょうどいいタイミングかも知れません。

---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手