2010年6月28日月曜日

LuxRenderのレンダスピードを向上させる10のポイント(後半)

前半からのつづき。



6.テストレンダを実施する

シーンが完成したのでLuxRenderでいきなりフルサイズでレンダ開始、というのは
おすすめしません。最低一度はテストレンダをして様子をみるべきです。

最終的にHDサイズに出力する作品だからといってテストレンダもHDで行う必要は
ありません。VGAや360pくらいのサイズでもノイズの出方や照明の具合、処理の
進行状況の傾向といったものは確認できます。

本番のレンダで数時間費やしてから後悔するよりは、5分程度のテストレンダで
失敗に気づいた方が精神衛生上よろしいかと。



7.ポータルを使用する

ポータルは光源からの光に対して明示的に光路を指定するためのオブジェクトです。
レンダ結果に影響しない無駄な光路計算を省略させることができるため、レンダ効率の
改善が期待できます。

と説明してもイメージしづらいかもしれないので、数量限定特価品がある開店前の
家電量販店の入り口を想像するとわかりやすいかも。

店としてはどれくらいの集客につながったのか、とか、用意した在庫数の過不足を
知りたいので客の人数を知りたい。

なのに開店を待っていた客がシャッターを開けた瞬間に入り口から店舗内に縦横無尽、
勝手気ままに殺到すると人数の確認も情報もなにもあったもんじゃない。
あまりの混雑のため特価品の売り場にたどり着けない客や、逆に特価品目当てでない客が
人の流れに巻き込まれてしまいさらに混乱がひどくなる状況も発生する。

そんな状況は勘弁していただきたいので、購入希望者の列を作るための立て札やロープ、
特価品のある売り場への誘導のためのスタッフ等を適切に配置すると、今度はスムーズに
客は流れるようになる。関係の無い客が巻き込まれることもなくなり、人数チェックも
確実に行えるようになる。

量販店入り口=光源、客=光、特価品売り場=被写体のオブジェクト、とすると
誘導のためのスタッフ、立て札やロープ=ポータル、という感じ。

実際のポータルのメカニズムとは若干違う部分もあるけど、当たらずとも遠からずかと。
あくまでイメージってことで。


[関連リンク]
ポータルを使ってみる



8.不必要なポリゴンを減らす

LuxRenderに限った話ではないですがシーンに存在するポリゴンが多くなれば
レンダ時間はより長くかかります。いわゆるローポリモデリングというほど
極端にポリゴン数を減らす必要はありませんが、不必要なポリゴンが存在して
いないか意識しながらモデリングしたり、シーンを構築するのは良いことです。

被写体としてレンダリングされないオブジェクトでもポリゴンを少なくしておく
ことでレンダスピードの改善につなげられるものもあったりします。
特に効果的なのは7.で説明したポータル用のオブジェクトとメッシュライト。

ポータル自体はレンダ結果に表示されることは無いのでできる限りシンプルに
しておくのがベストです。メッシュライトは自己発光のため形状がはっきり
出なかったりするのでこちらも極力単純な形状で面数が少ない方がよさげです。

どちらも面数が少なくしておくことでフォトンマップ作成やレンダ時の光路計算
などの処理が軽減されるためレンダスピードの向上につながります。



9.ポストエフェクトを使ってみる

LuxRenderでレンダしている場合ある程度まで処理が進捗すると、オブジェクトの
ディテールは出てきたし目立ったノイズも無いんで、あとは微妙なノイズというか
絵がざらっとしてる感じが減っていけばいいかな?という状態になるかと思います。

で、そこからが結構時間がかかるわけで。ガラスがすっきり透明になるまで、とか
影のグラデーションがなめらかにつながるまで、とかが。

そんな状況で役に立つのがポストエフェクトとして用意されているノイズフィルタ。
レンダをすすめつつリアルタイムに効果を確認しながら並列に適用できるので
あと一歩の状況でとても便利。

またレンズ効果もポストエフェクトとして利用できます。
レンズ効果はノイズ対策用というわけではないのですが、ブルームやグレアなどを
適用すると画像がぼんやり、柔らかくなるので結果として細かいノイズが目立たなく
なったりします。



10.適切なバージョンを使用する

LuxRenderはMac、Linux、Windowsで利用可能ですが、各OS向けに32/64bit版や
SSE2対応版などいくつか異なるバージョンが配布されています。自分の環境にあった
ものを選択することでより効率の良いレンダリングが可能です。

またオープンソースなのでソースから自分の環境にあわせて最適化したビルドを作成
することでハードウェアの性能をより引き出すことが出来るようになります。

配布されているビルドはSSE2までの対応だったり、CPU毎の最適化はされていないので
自分の環境に合わせた最適化の余地はかなりあるかと思います。またllvm-gccでの
ビルドも可能なので利用できる方は一考の価値があるかと。


[関連リンク]
Ubuntu10.04 でLuxRenderをビルドしてみる
blender とLuxRenderのビルド手順メモ
LuxRender10% 早くなる。



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