Integrators

Mitsuba では、様々なレンダリング技術をインテグレータと総称しています。
それぞれのインテグレータは、光輸送方程式を解決するための特定の手法を表現し、それは特定のシナリオでは好まれますが、それと同時に、インテグレータ自身の本質的な制限による影響も受けます。
したがって、レンダリングするシーンの精度や特性に基づいてインテグレータを選択することが重要となります。


インテグレータの選択 - Choosing an integrator

Mitsuba にはインテグレータが多数あるため、適切なものを決めるのが難しいと思えるかもしれません。
レンダリングの目的が近似することではなく完全な光輸送方程式を解くことであると仮定すると、いくつかのインテグレータ (Ambient Occlusion, Direct Illumination, Virtual Point Light) は除外することができます。
Adjoint Particle Tracer もほとんど使用されません。
以下の「アルゴリズム」は、これら以外の中から決定するのに役立つでしょう :
  1. 適切なパストレーサでシーンをレンダリングしてみてください。これが希望している結果になるなら終わり。
    • Mitsuba は現在、状況によって使い分けるために以下の 3 つのパストレーサが用意されています :
  2. ステップ 1 の結果が、ノイズが多かったり収束に時間が掛かったりした場合、双方向パストレーシング (Bidirectional Path Tracer) を試してみます。
  3. もし、ステップ 1 でも 2 でもレンダリングに失敗した場合、比較的難しいライティング設定が含まれていたり、複雑なマテリアルとの相互作用が潜在的に含まれていますので、この様な場合はプライマリサンプル空間 MLT (Primary Sample Space MLT) を試してみます。
  4. 上記のいずれでも働いていない場合、残りのオプションのフォトンマッピング (Photon Mapper, Progressive Photon Mapping, Stochastic Progressive Photon Mapping) またはパス空間 MLT (Path Space MLT, Energy Redistribution PT) を試します。


パス深度 - Path depth

ほぼすべてのインテグレータは、パス深度の概念を使用しています。
ここでのパスとは、光源から始まって目やセンサで終了する、散乱現象の連鎖を指します。
パス深度を制限することは、ピクセル当たりの計算量を減少させるので、プレビュー目的でシーンをレンダリングするときなどには便利です。
さらに、プレビューレンダリングでは、通常より速く収束させるため、ピクセルあたりのサンプル数も少なくします。
高品質でレンダリングしたい場合は、パス深度を無限に設定します。

Max. path depth: 1 2 3
Int_path_m_10_00_l256.jpg
Path Tracer, 256spp
Int_path_1_10_00_l256.jpg
01m06.62s
Int_path_2_10_00_l256.jpg
01m43.74s
Int_path_3_10_00_l256.jpg
02m23.03s
Int_path_-1_10_00_l256.jpg
05m53.26s
これらは Max. path depth の視覚的効果を示しています。
パスが長くなるにつれ、色の付いたサーフェスからの多重散乱の相互作用によって色の彩度が増加し、それと同時に計算時間も増大します。

Mitsuba は深度のカウントを 1 から開始します。
パス深度 1 とは、直接見えている光源に該当します。
すなわち、光源から始まって目またはセンサーで終わるまでの間になにも散乱相互作用が行われなかったパス、ということになります。
深度 2 となるパスはに、一回の散乱現象が含まれています。
これは、ダイレクトイルミネーションとしても知られています。


プログレッシブと非プログレッシブ - Progressive versus non-progressive

Mitsuba のいくつかのレンダリングアルゴリズム (Progressive Photon Mapping, Stochastic Progressive Photon Mapping) は、プログレッシブ方式です。
プログレッシブ方式は、粗いプレビューが表示され、時間の経過とともに改善されていくレンダリングです。
無制限に実行されているレンダリングをそのままにすると、偏りのないアルゴリズムのメトロポリス光輸送ではノイズを、偏りのあるアルゴリズムのプログレッシブフォトンマッピングではノイズと偏りを継続的に減らすことができます。


法線の厳密なチェック - Strict Normals

Mitsuba のほとんどのレンダリングアルゴリズムには、法線を厳密にチェックする Strict Normals オプションが用意されています。
このオプションを有効にすることで、潜在的な矛盾を含んでいるシェーディング法線があるかを厳しくチェックします。
三角メッシュは多くの場合、基になるジオメトリの本質的なファセット化外観を抑制するために補間されたシェーディング法線に依存しています。
しかし、これらの "偽" 法線が問題が無いわけではありません。
シェーディング法線に従うと "外側" と分類され、本来のジオメトリ法線に従うと "内側" とされる方向からオブジェクトにレイが衝突するという矛盾した状況をもたらす可能性があります。
このパラメータは、このような状況が発生した場合の動作を指定するものです。
このオプションが無効の場合は、シェーディング法線による情報が優先され、このようなライトパスでも有効とします。
これは理論的には、境界線を通る光の "漏れ" を引き起こす可能性がありますが、実際には大きな問題ではありません。
このオプションを有効にすると、パストレーサは不整合を検出し、これらのパスを無視します。
オブジェクトのテセレーションが不十分な場合、このオプションにより、かなりの入射放射量が失われて暗くなる可能性があります。
Mitsuba の双方向インテグレータ (Bidirectional Path Tracer, Primary Sample Space MLT, Path Space MLT 等) は、暗黙的に有効となっています。
したがって、これらのインテグレータによって作成されたレンダリングと一致させるために、このパラメータを使用するという使い方もあります。


直接見える発光体を隠す - Hiding directly visible emitters

Mitsuba のいくつかのレンダリングアルゴリズムは、環境マップや面光源といった直接見える発光体を隠す機能 (Hide Emitters オプション) を持っています。
特に現実的ということではありませんが、違う色のドキュメントに貼り付けるためにレンダリングから背景を削除したい時には便利な機能です。
ただしこの機能で非表示にすることができるのは直接見える発光体のみで、光沢のある表面での反射には影響しません。
また背景を透明にするには、[Active Camera Film Setting] にてアルファチャンネルを指定する必要があります。

Int_Lighting.png Hide Emitters: off Hide Emitters: on
PNG: RGB Int_path_24_10_00_l256_pngRGB.png Int_path_24_10_01_l256_pngRGB.png
PNG: RGBA Int_path_24_10_00_l256_pngRGBA.png Int_path_24_10_01_l256_pngRGBA.png
※このオプションを有効にすると、Area LampPoint Lamp はただの白いオブジェクトとして表示され、Plane Emitter は黒いオブジェクトとして表示されました。Hemi Lamp による背景は、ピクセルフォーマットによって現象が変わり、ピクセルフォーマットが RGB の場合は黒に、RGBA の場合は透明になりました。また、このオプションが有効になっていなくても、ピクセルフォーマットが RGBA の場合、Hemi Lamp による背景は透明になりました。


ピクセルあたりのサンプル数 - Number of samples per pixel

Mitsuba のインテグレータの多くはピクセルあたりのサンプルの数に依存し、それが最終出力におけるノイズの量に関係します。
しかしこのパラメータはインテグレータのパラメータではありません。
サンプリングに関してはサンプルジェネレータが担っていて、[Mitsuba Sampler Settings] でジェネレータのタイプとサンプル数を設定します。
サンプルジェネレータに関しては、Sample generators を参照してください。

インテグレータとマテリアルとサンプル数の関係

Scene
Int_scene.png

Pixel samples: 4 16 64 256
Int_ao_1_-1.0_l.jpg
ao
Int_ao_1_-1.0_l4.jpg
00m39.71s
Int_ao_1_-1.0_l16.jpg
00m40.96s
Int_ao_1_-1.0_l64.jpg
00m47.64s
Int_ao_1_-1.0_l256.jpg
01m14.66s
Int_direct_1_1_00_l.jpg
direct
Int_direct_1_1_00_l4.jpg
00m39.93s
Int_direct_1_1_00_l16.jpg
00m43.16s
Int_direct_1_1_00_l64.jpg
00m55.06s
Int_direct_1_1_00_l256.jpg
01m41.51s
Int_path_24_10_00_l.jpg
path
Int_path_24_10_00_l4.jpg
00m44.22s
Int_path_24_10_00_l16.jpg
00m59.56s
Int_path_24_10_00_l64.jpg
01m58.84s
Int_path_24_10_00_l256.jpg
05m54.90s
Int_volpath_simple_24_10_00_l.jpg
volpath_simple
Int_volpath_simple_24_10_00_l4.jpg
00m45.45s
Int_volpath_simple_24_10_00_l16.jpg
01m00.95s
Int_volpath_simple_24_10_00_l64.jpg
02m03.62s
Int_volpath_simple_24_10_00_l256.jpg
06m17.21s
Int_volpath_24_10_00_l.jpg
volpath
Int_volpath_24_10_00_l4.jpg
00m45.11s
Int_volpath_24_10_00_l16.jpg
01m01.70s
Int_volpath_24_10_00_l64.jpg
02m07.04s
Int_volpath_24_10_00_l256.jpg
06m31.58s
Int_bdpt_24_10_11_l.jpg
bdpt
Int_bdpt_24_10_11_l4.jpg
01m13.28s
Int_bdpt_24_10_11_l16.jpg
03m05.52s
Int_bdpt_24_10_11_l64.jpg
10m30.32s
Int_bdpt_24_10_11_l256.jpg
40m15.03s
Int_pm_24_10_16_32_250k3_.05_.01_120_0_0_l.jpg
photonmapper
Int_pm_24_10_16_32_250k3_.05_.01_120_0_0_l4.jpg
02m01.94s
Int_pm_24_10_16_32_250k3_.05_.01_120_0_0_l16.jpg
06m02.25s
Int_pm_24_10_16_32_250k3_.05_.01_120_0_0_l64.jpg
22m03.34s
Int_pm_24_10_16_32_250k3_.05_.01_120_0_0_l256.jpg
01h01m25.50s
Int_ppm_24_10_0_250k_0.0_0.7_l.jpg
ppm
Int_ppm_24_10_0_250k_0.0_0.7_l4.jpg
(02m17.16s)
Int_ppm_24_10_0_250k_0.0_0.7_l16.jpg
(04m03.00s)
Int_ppm_24_10_0_250k_0.0_0.7_l64.jpg
(04m12.93s)
Int_ppm_24_10_0_250k_0.0_0.7_l256.jpg
(16m45.60s)
Int_sppm_24_10_0_250k_0.0_0.7_l.jpg
sppm
Int_sppm_24_10_0_250k_0.0_0.7_l4.jpg
(01m37.70s)
Int_sppm_24_10_0_250k_0.0_0.7_l16.jpg
(01m59.87s)
Int_sppm_24_10_0_250k_0.0_0.7_l64.jpg
(02m55.57s)
Int_sppm_24_10_0_250k_0.0_0.7_l256.jpg
(05m43.93s)
Int_pssmlt_24_10_16_100k_0.3_10_l.jpg
pssmlt
Int_pssmlt_24_10_16_100k_0.3_10_l4.jpg
-
Int_pssmlt_24_10_16_100k_0.3_10_l16.jpg
-
Int_pssmlt_24_10_16_100k_0.3_10_l64.jpg
-
Int_pssmlt_24_10_16_100k_0.3_10_l256.jpg
-
Int_mlt_24_16_100k_50.0_011110_l.jpg
mlt
Int_mlt_24_16_100k_50.0_011110_l4.jpg
-
Int_mlt_24_16_100k_50.0_011110_l16.jpg
-
Int_mlt_24_16_100k_50.0_011110_l64.jpg
-
Int_mlt_24_16_100k_50.0_011110_l256.jpg
-
Int_erpt_24_10_16_100k_50_11110_1_0_100_l.jpg
erpt
Int_erpt_24_10_16_100k_50_11110_1_0_100_l4.jpg
00m40.38s
Int_erpt_24_10_16_100k_50_11110_1_0_100_l16.jpg
00m40.31s
Int_erpt_24_10_16_100k_50_11110_1_0_100_l64.jpg
00m40.07s
Int_erpt_24_10_16_100k_50_11110_1_0_100_l256.jpg
00m40.12s
Int_ptracer_24_10_200k_l.jpg
ptracer
Int_ptracer_24_10_200k_l4.jpg
-
Int_ptracer_24_10_200k_l16.jpg
-
Int_ptracer_24_10_200k_l64.jpg
-
Int_ptracer_24_10_200k_l256.jpg
-
Int_vpl_24_512_0.1_l.jpg
vpl
Int_vpl_24_512_0.1_l4.jpg
00m37.03s
Int_vpl_24_512_0.1_l16.jpg
00m35.74s
Int_vpl_24_512_0.1_l64.jpg
00m35.75s
Int_vpl_24_512_0.1_l256.jpg
00m36.75s




  • 最終更新:2014-07-31 09:00:38

このWIKIを編集するにはパスワード入力が必要です

認証パスワード