vidroの使い方

Index


1. イントロダクション

1.1 vidroとは?

 vidroはフリーのグローバルイルミネーションレンダラです。レイトレーシングベースの大域照明アルゴリズムによってフォトリアルなレンダリングを実現します。HDRIによるイメージベースドライティング(IBL)や、不均質な媒質による光の散乱等が計算可能です。また、ノンフォトリアリスティックレンダリング(NPR)もサポートしており、レンダリング結果を好みの画風に仕上げることが出来ます。

1.2 動作環境

 vidroはWindows用ソフトウェアです。動作確認はWindows 7とXPで行っています。
 vidroはSSE2に対応したx86 CPUで動作します。Intel製ならばPentium 4以降、AMD製ならばAthron 64以降のCPUで動作します。また、vidroはマルチコアに対応しており、CPUのコア数が多ければ多いほどパフォーマンスが向上します。
 vidroを安定して動作させるには多くのメモリを必要とします。メモリが少ないと正常に動作しない可能性があるので注意して下さい。


2. インストール

2.1 vidroのダウンロード

 まずvidroをダウンロードします。最新版のvidroはトップページにて公開しています。過去のバージョンをダウンロードしたい場合はupadte historyからダウンロード出来ます。  公開しているバイナリには64bit版, 32bit版があり、それぞれに日本語版と英語版があります。使用しているOS環境に合わせてダウンロードして下さい。
 尚、最新版は安定しているとは限らないので、もし不具合が発生するようなら過去のバージョンを試してみて下さい。不具合を発見された方はメール(yusuke.tokuyoshi@gmail.com)で連絡して頂けると対応します。その際、不具合が生じるファイルを添付して頂けると非常に助かります。
 ダウンロードしたzipファイルの中のvidro.exeというファイルが本体です。しかしvidro本体だけでは動作しないので次の手順に進みます。

2.2 Microsoft Visual C++ 2008 SP1 再頒布可能パッケージのインストール

 vidroを動作させるためにはMicrosoft Visual C++ 2008 SP1 再頒布可能パッケージが必要です。64bit用32bit用がそれぞれマイクロソフトから公開されているので、ダウンロードしてインストールして下さい。パッケージのインストールが完了後、vidro.exeを起動してエラーが出なければ成功です。


3. ファイルの入出力

3.1 オブジェクトファイルとシーンファイル

 vidroを起動してメニューの[ファイル(F)]->[シーンを開く(O)...]からレンダリングするファイルを読込みます。ファイルの読込はドラッグ&ドロップやコマンドラインからも可能です。
 vidroで読み込めるファイルはFBX, MQO, LWO, 3DS, OBJ, DXF, COLLADAとVDRファイルというvidro用のシーンファイルです。改行コードがCRのファイルは読み込めません。3DSファイルはキーフレーム情報等が未対応のため、正しく読み込めない可能性があります。又、COLLADAはエラーが出る可能性が高いので推奨しません。オブジェクトファイルをvidroに直接読み込ませるよりも、VDRファイル経由で呼び出す方が照明、マテリアル、その他ボリューメトリックな情報等を細かく設定出来るのでVDRファイルを推奨します。オブジェクトファイルを直接読み込ませても一部の設定ならvidroのGUI上で編集可能であり、VDRファイルに保存することが出来ます。VDRファイルの保存はメニューの[ファイル(F)]->[シーンを保存...]で行います。

3.2 画像ファイル

 テクスチャ等で読み込める画像ファイルはPFM, TIFF, EXR, HDR, PNG, BMP, JPEG, GIF, WMF, EMF, ICOファイルです。TIFFは32bit浮動小数点型のHDRIとLDRIの両方に対応しています。法線マップの場合を除いて、PNGやBMP等のLDRIなら、ガンマ値2.2で補正して読み込みます。レンダリング画像の保存は、PFM, TIFF, EXR, HDR, PNG, BMP, JPEG, GIFに対応しています。保存の場合、TIFFは32bit浮動小数点型のHDRIになります。JPEG, GIFの画質は汚いので推奨しません。画像の入出力にはHDRIを推奨します。

3.3 オブジェクトファイルの読込時の注意点

 vidroはポリゴンが重なっている面が存在すると正しくレンダリングできません。両面ポリゴンでモデリングしている場合は、vidroに読み込ませる前に必ず片面化して下さい。また、メタセコイアにおける曲面や鏡像等にも対応してません。必ずフリーズして下さい。
 MQOファイルの読込で、マテリアルの情報が記述されている場合、そのマテリアルを読み込みます。このときマテリアルのshaderがLambertでもConstantでもなく、spc(反射光)の値が0より大きいなら、vidroでは鈍い鏡面反射の重みが1になり、反射モデルがAnisotropic Phongモデルとなります。鏡面反射の反射率はspc*2/(power + 2)の値が適用されます。shaderがLambertかConstantであるか、あるいはspc(反射光)の値が0なら、鈍い鏡面反射の重みが0になり、反射モデルはLambertモデルになります。尚、MQOのマテリアルパラメータのうち、colのRGB値はガンマ値2.2で補正して読み込みます。それ以外の値は補正しません。
 OBJファイルを読み込んだ場合、MTLファイルに記述されたマテリアル情報を読み込みます。このときも同様に、Ks(鏡面反射)の値が0より大きいならvidroでは鈍い鏡面反射の重みが1になり、鏡面反射の反射率にKs*2/(Ns + 2)の値が適用されます。そうでないなら鈍い鏡面反射の重みが0になります。
 尚、vidroではMQO,LWO,3DSファイル以外のマテリアルの値は、見た目の色ではなく反射率と解釈するのでガンマ補正せずに読み込みます。モデラのガンマ値を2.2に設定してモデリングを行ってください。
 MQO,FBXファイルを直接を読み込んだ場合、そのファイルに記録されている点光源と平行光源を読み込みます。光源が記録されていない場合、明るさ1の真っ白な天球光源が置かれます。IBL等の他の照明を使用したい場合や、ボリュームレンダリングを行いたい場合は、VDRファイルをテキストエディタで編集するか、GUIの[メニュー]->[シーン(S)]でvidroに入力されたシーンを編集する必要があります。


4. レンダリング

4.1 レンダリングの実行

 シーンデータの入力が完了したらレンダリングを行います。レンダリングは[メニュー]->[レンダリング(R)]->[レンダ...]で、レンダリングダイアログが開き、このダイアログのOKボタンを押すことで実行されます。このとき、マルチコアCPUを使用している場合は、自動的にマルチスレッドで実行されます。レンダリングの計算が始まると完了するまで中止は出来ません。どうしても中止したい場合はvidroを強制終了する必要があります。レンダリング中、途中経過を表示したい場合はF5キーを押して下さい。また、レンダリング中でも、[メニュー]->[表示]の全ての項目は変更可能です。

4.2 画質を制御するパラメータ


Rendering Dialog

 vidroで用いている大域照明アルゴリズムでは画質と計算時間がトレードオフの関係にあります。照明計算で用いるサンプル数を少なくすると、短い時間でレンダリング出来ますが画像にノイズが発生し、サンプル数を多くすると計算時間が長くなりますがノイズが抑えられます。これらの画質を制御するパラメータはGUI上ではレンダリングダイアログで、CUI上ではコマンドラインオプションで指定します。これらのパラメータの詳細は以下になります。

Width:
 レンダリング画像の横のピクセル数。フォトンマップ構築を除いたレンダリング時間はこの値に比例する。

Height:
 レンダリング画像の縦のピクセル数。フォトンマップ構築を除いたレンダリング時間はこの値に比例する。

Caustics Photons (コースティクスフォトン):
 コースティクスフォトンマップの構築で使われるフォトンの放射回数。この値が大きいほど、物体表面のコースティクスをシャープに描くことが出来る。ただしこの値を大きくすると、計算時間が大きくなるだけでなく、メモリの使用量も増える。コースティクスフォトンは点光源、平行光源、強いEmissionの値を持つマテリアルが割り当てられたオブジェクト、明暗差のある天球光源から、完全鏡面反射・屈折する物体へ向かって放射される。どのオブジェクトからフォトンを放射するかはvidroが自動的に決定する。コースティクスフォトンマップの必要無いシーンでは無効になる。尚、シーンに点光源・平行光源が存在しない場合に限り、このパラメータを0にするとunbiasedなレンダリングが行われる。

Volume Photons (ボリュームフォトン):
 ボリュームフォトンマップの構築で使われるフォトンの放射回数。この値が大きいほど、パーティシペイティングメディアにおける光の散乱をシャープに描くことが出来る。ただしこの値を大きくすると、計算時間が大きくなるだけでなく、メモリの使用量も増える。ボリュームフォトンは全ての光源からシーン全体へ向かって放射される。ボリュームフォトンマップの必要無いシーンでは無効になる。ボリュームフォトンマップの放射輝度推定は多くの計算時間を必要とするので注意が必要。

Over Sampling (オーバーサンプリング):
 ピクセル当りの視点から放射されるレイのサンプル数。アンチエイリアスやDOFによるノイズを制御するパラメータ。この値が大きいほどノイズは小さくなる。ただしDOFが無効ならば大きくしても、遅くなるだけであまり意味は無い。

Global Illumination (大域照明):
 最も重要なパラメータ。ピクセル当りの物体表面の品質。間接照明や天球光源、完全鏡面反射・屈折によるノイズを制御するパラメータ。この値が大きいほどノイズは小さくなる。この値と入力されたシーンデータを基に、レンダラ内部で実際に使用されるサンプル数が自動的に決定される。

Area Light (面光源):
 ピクセル当りの面光源の品質。強いEmissionの値を持つマテリアルが割り当てられたオブジェクトの直接照明によるノイズを制御するパラメータ。この値が大きいほどノイズは小さくなる。必要のないシーンでは無効になる。

Point Light (点光源):
 ピクセル当りの点光源の品質。パーティシペイティングメディア内において、点光源の直接照明におけるノイズを制御するパラメータ。この値が大きいほどノイズは小さくなる。必要のないシーンでは無効になる。

4.3 フォトンマップの再構築

 vidroでは、シーンが変更されない限り、2度目以降のレンダリングでは前回構築したフォトンマップを再利用して高速化します。パラメータを変更してフォトンマップを再構築したい場合は、フォトンマップをクリアしてからレンダリングを行う必要があります。コースティクスフォトンマップのクリアは[メニュー]->[レンダリング(R)]->[コースティクスフォトンマップをクリア]で、ボリュームフォトンマップのクリアは[メニュー]->[レンダリング(R)]->[ボリュームフォトンマップをクリア]で行います。

4.4 バッチレンダリング

 vidroはCUIでも実行できるので、ユーザがバッチファイルを作成することでバッチレンダリングが可能です。コマンドラインオプションについてはこちらのページを参照して下さい。また、バッチファイルを書くのが面倒だと言う方はWonderRabbitProjectにてvidroのバッチ処理用フロントエンドVidroSequenceが公開されています。アニメーション等をレンダリングする場合に便利だと思います。


5. アートスタイルの変更

vidroでは[メニュー]->[表示]から以下の出力を選択できます。これらはレンダリング中やレンダリング後でも変更可能です。

Photoreal(フォトリアル):
写実的なレンダリング結果を出力する。背景が設定されていたら背景が合成される。

Non-photoreal(ノンフォトリアル):
輪郭線の抽出と色調変換を行ったレンダリング結果を出力する。輪郭線は[輪郭線の設定...]の設定が反映される。色調変換は[ビュートーン][ライティングトーン]の設定が反映される。また、背景が設定されていたら背景が合成される。

Contour(輪郭線):
輪郭線のみを表示する。輪郭線は[輪郭線の設定...]の設定が反映される。ただしContour Color(線色)は無視される。

Transmittance(透過率):
背景合成用の透過率を出力する。明るい領域が背景となる領域。

Normal(法線):
物体表面の法線を出力する。(R, G, B)=((x + 1)/2, (y + 1)/2, (z + 1)/2)で表示される。形状の確認、あるいはポストプロセッシング用。

Reflectance(反射率):
発光、照明を無視してマテリアルの反射率のみを出力する。ポストプロセッシング用。

Illumination(照明):
発光、反射率を無視して照明のみを出力する。ポストプロセッシング用。

Emission(発光):
反射率、照明を無視して発光のみを出力する。ポストプロセッシング用。

"反射率"、"照明"、"発光"はレンダリング画像の各成分で、(最終画像)=(反射率)×(照明)+(発光)です。

執筆中...


An Example of Non-photorealistic Rendering