SphericalViewer.png

RICOH THETA などで撮られた 正距円筒図法型 の全天球画像を一望できるビュアーを作ります。

 ▼サンプルプログラム
 ・SphericalViewer_XE5.zip
 ※「Altered」フォルダと「Unaltered」フォルダへ、
   以下のサンプルと同じユニットをコピーしてきて下さい。
   ・カメラの画角を変える方法

 

そもそも TSphere は 正距円筒図法型 のテクスチャ座標を持っているので、全天球画像を割り当てれば、簡単に風景のドームを作れます。ただ、法線が外側を向いているので、中にカメラを入れると見えなくなってしまいます。なので、TSphere.Scale.Z プロパティに -1 を指定して裏返すのがポイントです。

 Camera-01.png
図1.1: 標準画角カメラの視野錐台

Camera-01V.png
図1.2: 標準画角カメラの視界

ちなみに、単純な球面とはいえ TSphere も例外に漏れず、小さな平面の三角形(ポリゴン)の集合で構成されているので、一つのポリゴン内のテクスチャ座標は線形に補間されていますが、正距円筒図法は非線形なテクスチャ空間なので、厳密には完璧にマッピングすることはできません。分割数が少ないと上下の極付近に荒が見えてしまいます。

_8.png 
図2.1: 8x4 分割

_64.png
図2.2: 64x32 分割

以前の カメラの画角を変える方法 を応用すれば、視界を広げることができます。しかしその場合、いくら画角を広げようと、直線の被写体はあくまでも直線で表示され、現実の広角カメラのような 歪曲収差(Distortion) は生じません。

Camera-02.png
図3.1: 広角カメラの視野錐台

Camera-02V.png
図3.1: 広角カメラの視界

 歪曲収差の効果は、視点を原点からずらすことで生じます。この場合、光軸を通らない直線の被写体は歪んで見えます。そして、TSphere 自体がカメラの視野錐台内にすっぽり入ってしまうと、全周魚眼レンズのような効果が得られます。

Camera-03.png
図4.1: 広角カメラ(歪曲収差)の視野錐台

Camera-03V.png
図4.2: 広角カメラ(歪曲収差)の視界