パストレーシング用の適切なレンズ/カメラの客観的モデルを構築する方法


13

smallptを学習して実験した後、小さなパストレーサーを作成しました

自分で書いていない(理解していない)唯一のことは、初期光線がどのように計算され、カメラから発射されるかです。原則は正しいのですが、次の方法を説明するリソースを探しています。

  • 光線の初期方向を計算します
  • おそらく被写界深度などの効果を可能にする(ピンホールカメラではなく)実際のレンズをモデル化しますか?

最先端の数学と物理学は必須ではありませんが、十分に説明されていればOKです。

回答:


13

ピンホールカメラモデルからの次のステップは、レンズを無限に薄いディスクとしてモデル化する薄いレンズモデルです。これは、実際のカメラのモデリングとはほど遠い理想化ですが、基本的な被写界深度効果を提供します。

薄型レンズモデル

panohelp.comの上記の画像は、基本的な考え方を示しています。画像上の各ポイントには、2Dレンズ表面のすべてのポイントを介して、その画像ポイントに到達する複数の光線があります。したがって、モンテカルロを使用してこのような画像を生成するには、光線ごとに、画像平面上の2Dサンプルポイントとレンズ表面上の独立した2Dサンプルポイントの両方を選択する必要があります。

設定するユーザー向けのパラメーターは、レンズの半径(シーン単位の物理的半径として)であり、フォーカス範囲の浅さ(大きいレンズ=浅いフォーカス範囲)、およびオブジェクトを配置したい距離を制御しますフォーカス。

光線をシーンに生成するために、レンズの表面から出る光線の位置と方向を計算できます。このモデルでは、レンズを通して像面と屈折を明示的にシミュレートする必要はありません。基本的に、レンズはカメラの位置を中心にして、カメラの方向を向くように配置されていると考えてください。

画像の位置に基づいて、ピンホールモデルの場合と同様に、カメラの位置(レンズの中心)からシーンに光線を作成します。次に、焦点面との交差点を見つけます。それは、その画像位置からのすべての光線が収束する場所です。これで、光線の開始点をレンズ上のランダムに選択した点にオフセットし、その方向を収束点に向けることができます。

これを少し一般化するには、焦点面を平面以外のものにするか、レンズを円形ディスク以外のものにし、同じプロセスに従います。それは、かなり物理的な効果ではないにしても興味深い結果を生み出すことができます。カメラのレンズ要素のより物理的に現実的なシミュレーションを使用して、この単純なモデルを超えることもできますが、それは私の専門知識を超えています。


4

Kolb、et al。、A Realistic Camera Model for Computer Graphics、SIGGRAPH 95を参照してください。

ただし、実際のカメラを模倣したカメラモデルは、必ずしもレンダリングフェーズに必要なものではないことに注意してください。視覚効果/ポストプロダクションシナリオでは、カメラモデルがもたらすブラー/ケラレ/歪みが大きくなるほど、コンポジター/カラータイマーが悪化します。多くの場合、ポストパスとして行う方が適切です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.