ラジオシティ
どうやら、フォトンマッピングとラジオシティは計算が別なので、相互作用をシミュレートできないようだ… 実際、ラジオシティを有効にした状態でレンズがなくても、見た目が同じようになる。
| レンズあり |
| レンズ無し |
リファレンスマニュアルでは、これらを相互作用させる方法は見つけられなかった。つまり、POV-Rayではこれ以上どうしようもないということになる。
レイトレーシングについて色々調べていると、物理ベースレンダリングというものを見つけた。ツールとしては、LuxCoreRendarというものを見つけた。これについて調べてみようと思う。
下記は、ラジオシティの項の翻訳となる。
3.4.4.3 Radiosity
3.4.4.3.1 Radiosity Basics
ラジオシティは、拡散相互反射をよりリアルに計算する手法です。この拡散相互反射は、青いカーペット、青い壁、青いカーテンの部屋に白い椅子を置くと、その現象を見ることができます。椅子は、部屋の椅子以外の場所から反射する光によって、青っぽくなります。その表面を光が直接照らしていなくても、完全に真っ黒な影にならないことに気づくでしょう。ほかの物体から反射してきた拡散光が影を塗りつぶします。レイトレーシングでは、これをシミュレートするのに「環境光」を用いますが、これは正確ではないです。
ラジオシティの計算は、global_settingの中に、radiosityブロックがある場合に行われます。
以下のセクションでは、ラジオシティがどのように働き、global_settingによってどのようにコントロールされ、品質とスピードのトレードオフについて説明します。
3.4.4.3.2 How Radiosity Works
レイトレーシングは、シーン内で見えるそれぞれの点での光のレベルが、どれくらいかを示す事を課題としています。従来、レイトレーシングでは、以下の要素の和として分解できます。
拡散:物体側面を明るくする効果
スペキュラ:輝いている物体がキラキラする効果
反射:鏡のように反射する効果
アンビエント:あらゆるシーンが持つ一般的な全体の光で、影が真っ黒にならないようにしている
Greg Wardの手法に基づくPOV-Rayのラジオシティは、最終項?を 近傍表面の状態とその明るさの順番に基づく明るさレベルに置き換えるものです(?)
この定義について、まず最初に気づくであろう事は、それが円形であるということです。すべての明るさと色は、他のすべてに依存しており、逆も同じです。現実世界では、当然のことですが、レイトレーシングの世界では、近似を行います。近似として使われるのは、見ている物体が、近くの物体によって計算される ambient 値です。
ただ、それらの物体がこのプロセスでチェックされると、それらの diffuse 値が用いられます。POV-Rayのラジオシティにおける明るさは、次の2つの事項からなる。
2.物体で定義したdiffuseプロパティ
以下に、重要な挙動の変更について記載しています
以前、物体は、radiosity と ambientの両方を持つことができましたが、現在は、物体にradiosityが設定されると、ambientがゼロに設定されるため、できなくなりました。ただキラキラする物体を得たいなら、emission キーワードをfinishの中に入れればよいです。
POV-Rayはどのようにして、ambientを計算しているのでしょう?それは、あらゆる方向に光を放射し、それを平均化して計算しています。環境光を計算するのに、平均的に、200以上の光線を用います。これは、レイトレーシングが200倍遅くなるように思われますが、ソフトウェアは環境光がゆっくり変化するという現象を用いることで回避しています(影は別で計算されるため、シャープな影の形は問題になりません)。
したがって、環境光を計算するための光は、たまに送り出され(50回に1回くらい)、その計算結果は保存されて、可能なら近くのピクセルに使用されます。
この保存と再利用のプロセスは、様々なパラメータの調整を必要とし、それによって、得たい絵を得ることができます。
コメント
コメントを投稿