フォトンマッピング

POV-Rayのフォトンマッピングでは、何が可能なのかを、下記を翻訳して確認することにした。

http://www.povray.org/documentation/3.7.0/r3_4.html#r3_4_4_4

結果として、そもそもこのフォトンマッピングには、反射と屈折しか定義がなく、散乱という概念がないことに気づいた。散乱による反射をシミュレートしているのは、ラジオシティのみと考えられるので、今度はラジオシティの項目を確認しようと思う。

今回訳したもののうち、冒頭部分を下記に記載する。

3.4.4.4 Photons

Photonsによって、現実の反射や屈折のコースティクス(光の紋様や筋のこと)をレンダリングできます。フォトンマッピングは、Henrik Wann Jensenによってはじめて導入されました。

フォトンマッピングは、反射や屈折のコースティックを写実的にレンダリングする為の、前方レイトレーシング前処理?を用いる技術です。

フォトンマッピングは、光源から光のパケット(フォトン)をシーン内で発射することで機能しています。フォトンが、ターゲットとなっている物体を通った(あるいは跳ね返った)後に、ある物体にぶつかると、その衝突点がメモリに保存されます。このデータは、反射や屈折によって生じる光の量を計算するのに使用します。

3.4.4.4.2 Using Photon Mapping in Your Scene

フォトンマッピングを使ってシーンを設計する場合、オブジェクトは2つのカテゴリに分けて考えるとよいです。一つは、コースティックが描かれる物体で、もう一つは、フォトンを屈折させたり、反射したりする物体がありあす。物体はどちらかに分類されるか、どちらにも属さない場合があります。

カテゴリ1:コーステックが現れる物体
デフォルトでは、すべての物体が、カテゴリ1になります。フォトンがカテゴリ1の物体にあたる度に保存され、その物体にコーステックを描くために使用されます。これはつまり、デフォルトでは、あらゆる物体の表面にコーステックを描くことができるということです。レンダリングを高速にするためには、物体をこのカテゴリから外しておくとよいです。やり方としては、photons{collect off}を追加しておけばよいです。この構文を使えば、コーステックがその物体に描かれなくなります。

カテゴリ2:コーステックの元になる物体
デフォルトでは、このカテゴリの物体はありません。コーステックを発生させたければ、2つのことをする必要があります。まず、targetキーワードを使って、その物体をカテゴリ2の対象とすること。これを指定すると、光源がその物体にフォトンを発射するようになります。次に、その物体がフォトンを反射するのか屈折するのか、あるいはその両方なのかを指定する必要があります。これは、refrection on と refraction onキーワードで行います。反射と屈折をさせたい場合、以下のコードをオブジェクトに追加すればよいです。

photons{
  target
  reflection on
  refraction on
  }

一般的に、物体が両方のカテゴリに含まれることは望ましくありません。コーステックを引き起こす物体は、それ自身、色や明るさをもっていません。通常それらは、周囲のものを反射したり屈折したりするだけです。このため、このような物体にコーステックを表示することは無駄です(のでcollect offした方が良い?)。もし計算したとしても、コーステックの影響は、気づかないくらいに、ほんのわずかでしょう。

場合によっては、ターゲットでなくても、他の反射面や透明なオブジェクトに、photons{collect off} を追加することをお勧めします。繰り返しますが、これは無駄な計算をさせないためのものです。

最後に、ターゲットでなくても、reflection や refractionを設定しておくことをお勧めします。これは、間接フォトン(ターゲットに当たったあと、反射や屈折されたもの)が、その物体に当たった後も移動できるからです。



コメント

このブログの人気の投稿

LuxCoreRenderを使ってみる

BlenderでLuxCoreRenderを使う

レンズを置いてみる2