レイトレーシングにおけるカメラ2

 前回に続き、カメラについて調べていく。

カメラタイプの部分が、レンズを選択する部分となる。リファレンスマニュアルを読むと、以下のようなレンズがあるらしい。


perspective

ピンホールカメラをシミュレーションしていると記載されている。ピンホールカメラは、焦点距離(穴から感光面までの距離)の長短では絵の拡大縮小しかしないので、前回の結果は納得の内容となる。レンズがないからね…。ピンホールカメラなら、焦点距離を伸ばしたら絵が大きく(そして高解像度)になる代わりに暗くなるわけだが、それは再現されていなさそうだ。おそらく露光時間という概念がないからだろうと思う。

レイトレーシングは、目から光線を追っていくという計算なので、レンズのないピンホールカメラのほうが、計算しやすいのかなと考える。


Orthographic

平行カメラ光線を使ってシーンを作ると記載されている。意味が分からないので、実際に使ってみた。前回のシーンファイルに対して、カメラタイプをorthographicにしたものが以下の画像となる。


何だこの黒いの?と思ったが、どうやら影らしい。光源が物体に近いところにあるので、影が大きく出てしまったので、光源をめちゃくちゃ遠くにして、実質的な平行光にする。すると下記にように、影のない四角だけになった。

light_source{<0,0,1000>color rgb<1,1,1>}

これは、テレセントリックレンズっぽい。テレセンレンズはレンズ光軸に対して光線が平行になるような光学系(つまり歪曲収差がゼロのレンズ)なので、画像計測に使われるレンズだが、それに近い挙動をしている。

mesh_camera

出力画像の各ピクセルの光線の原点と方向を制御できるカメラタイプ。用途として、テクスチャベイクや照明計算に使えると記載されている。テクスチャベイクは、物体の形状によって生まれる影をあらかじめ計算して、模様のデータとして出力し、それをテクスチャのように張り付けることで、いちいちレイトレーシングしなくてもよくする手法のことらしい。

照明計算に使えるとあるが、これは気になるので、この機能は別途深堀する。

Fisheye

魚眼レンズのこと。物体に寄って撮影しても、周りの物体が見えてしまうほどの広角レンズ。パラメータ的には、angle=180度で一般的な魚眼レンズ、angle=360度でスーパー魚眼(すべてが見える)レンズになる。現実に360度のレンズなんてあり得ないですが…
Perspective, location <0,0,2> 普通のレンズならこれしか見えない

fisheye location <0,0,2> angle 180 魚眼だとこう見える

絵を見る限り、円周魚眼(X軸とY軸の比率が同じ)になっている。

ultra_wide_angle

先ほどの魚眼に対して、画像を円ではなく、矩形で描画するもの。実際やってみると、下図のようになる。対角線魚眼っぽいが、端部の描画がちょっと違うように見える(平面チックに見える)。
ultra_wide_angle angle 180

他にもあるが、現実のレンズとリンクできるものが分からなかった。また、Focal Blur(焦点ぼけ)は、焦点深度を指定できるキーワードに見えるので、次回確認する。


コメント

このブログの人気の投稿

LuxCoreRenderを使ってみる

BlenderでLuxCoreRenderを使う

レンズを置いてみる2