vidroの使い方

Index


1. イントロダクション

1.1 vidroとは?

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

1.2 動作環境

 vidroはWindows用ソフトウェアです。動作確認はWindows 7 64bit版で行っています。
 vidroはSSE2に対応したx86 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を起動してメニューの[File(F)]->[Open Scene(O)...]からレンダリングするファイルを読込みます。ファイルの読込はドラッグ&ドロップやコマンドラインからも可能です。
 vidroのシーンファイルはVDRというオリジナルフォーマットです。VDRファイルは光源、マテリアル、ボリューム、視点などをテキストで記述したものであり、メッシュデータや画像データ自体は持たず、内部で関連付けるファイルのパスのファイルを指定するようになっています。

3.2 オブジェクトファイル

 メッシュデータとして指定できるオブジェクトファイルはFBX, MQO, LWO, 3DS, OBJ, DXF, COLLADA形式です。改行コードがCRのファイルは読み込めません。3DSファイルはキーフレーム情報等が未対応のため、正しく読み込めない可能性があります。又、COLLADAはエラーが出る可能性が高いので推奨しません。この中ではFBXファイルを推奨します。尚、vidroはオブジェクトファイルを直接読み込ませることも可能ですが、そのままでは大抵良いレンダリング結果にならないと思います。シーンの一部の設定ならばvidroのGUI上で編集可能であり、編集結果をVDRファイルに保存することが出来ます。VDRファイルの保存はメニューの[File(F)]->[Save Scene...]で行うことができます。
 vidroはポリゴンが重なっている面が存在すると正しくレンダリングできません。両面ポリゴンでモデリングしている場合は、vidroに読み込ませる前に必ず片面化して下さい。また、MQOやLWOにおける曲面や鏡像等にも対応してません。必ずフリーズして下さい。
 尚、vidroではMQO,LWOのマテリアルはガンマ値2.2で、3DSファイルはガンマ補正の指定があった場合は2.2で補正します。それ以外のマテリアルの値は、見た目の色ではなく反射率と解釈するのでガンマ補正せずに読み込みます。モデラのガンマ値を2.2に設定してモデリングを行ってください。
 FBXファイルを直接を読み込んだ場合、そのファイルに記録されている点光源と平行光源を読み込みます。光源が記録されていない場合、放射輝度(1,1,1)の真っ白な天球光源が置かれます。IBL等の他の照明を使用したい場合や、ボリュームレンダリングを行いたい場合は、VDRファイルをテキストエディタで編集するか、GUIのメニューの[Scene(S)]でvidroに入力されたシーンを編集する必要があります。

3.3 画像ファイル

 テクスチャに指定できる画像ファイルは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を推奨します。


4. レンダリング

4.1 レンダリングの実行

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

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


Rendering dialog.

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

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

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

Caustics Photons:
 光源から放出されるコースティクスフォトンの数。この値が大きいほど、物体表面のコースティクスを正確に描くことが出来る。フォトンが足り無い場合、陰影がボケたり斑が出たりしてしまう。この値を大きくすると、計算時間が長くなるだけでなく、メモリの使用量も増加する。コースティクスフォトンマップの必要無いシーンでは、入力は無効になる。尚、このパラメータを0にするとunbiasedなレンダリングが行われる(ただし、点光源・平行光源が存在しないシーンに限る)。

Volume Photons:
 光源から放出されるボリュームフォトンの数。この値が大きいほど、パーティシペイティングメディアにおける光の散乱を正確に描くことが出来る。フォトンが足り無い場合、陰影がボケたり斑が出たりしてしまう。この値を大きくすると、計算時間が長くなるだけでなく、メモリの使用量も増加する。ボリュームフォトンマップの必要無いシーンでは、入力は無効になる。

Radiance Threshold:
 近傍フォトンの最大探索半径を決定する為の値。この値が小さい程最大探索半径が大きくなり、大きいほど最大探索半径が小さくなる。最大探索半径が小さくなると、計算時間が短くなり、影の境界などがシャープになるが、斑が出やすくなるという欠点がある。詳細は"A Practical Guide to Global Illumination using Photon Mapping"のSection 5.2、もしくは"High Quality Rendering using Ray Tracing and Photon Mapping"の70頁を参照。このパラメータは放射輝度の許容エラーの大きさなので、表示画面に現れるエラーの大きさは露出の大きさに比例する。従って、露出が大きい設定でレンダリングする場合はこのパラメータを小さくし、露出が小さい設定でレンダリングする場合はこのパラメータを大きくすると良い。初期値の0.05は露出を1.0と仮定した数値である。自動露出を使う場合は注意が必要。尚、フォトンマップの必要無いシーンでは、入力は無効になる。

Over Sampling:
 ピクセル当りの視点から放射されるレイのサンプル数。アンチエイリアスやDOFによるノイズを制御するパラメータ。この値が大きいほどノイズが小さくなる。

Global Illumination:
 最も重要なパラメータ。ピクセル当りの大域照明によるノイズを制御するパラメータ。この値が大きいほどノイズが小さくなる。

Area Light:
 ピクセル当りのエリアライトの品質。エリアライトの直接照明によるノイズを制御するパラメータ。エリアライトとはEmissionが0より大きなマテリアルを割り当てられたオブジェクトのことである。このパラメータが大きいほどノイズが小さくなる。ただし、エリアライトの明るさが他の光源に比べ弱い場合、この値を大きくしても計算の効率が悪くなる。エリアライトが存在しないシーンでは、入力は無効になる。またエリアライトの輝度がスカイライトの輝度に比べて小さいときは初期値が0になる。

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

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

4.4 バッチレンダリング

 vidroはCUIでも実行できるので、ユーザがバッチファイルを作成することでバッチレンダリングが可能です。コマンドラインオプションについてはこちらのページを参照して下さい。


5. 表示の変更

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

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

Non-photoreal:
輪郭線の抽出と色調変換を行ったレンダリング結果を出力する。輪郭線は[Contour Settings...]の設定が反映される。色調変換は[View Tone]及び[Lighting Tone]の設定が反映される。また、背景が設定されていたら背景が合成される。

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

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

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

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

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

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

"Reflectance"、"Illumination"、"Emission"はレンダリング画像の各成分で、(Result)=(Reflectance)×(Illumination)+(Emission)です。

執筆中...


An example of non-photorealistic rendering.