2009年08月14日

魚の視界 -魚眼レンズ-

こんにちは!イワサキですわーい(嬉しい顔)
暑いですねぇ〜夏真っ盛り!晴れみなさんはどのような夏を楽しんでいますか?リゾート

前回の被写界深度レンダリングはいかがだったでしょうか。

実験的な意味合いもありましたので、実際にはもう少し品質と速度も向上したものになります。
周辺減光などもまだ入れていなかったり、絞り形状やボケる範囲はもっと綺麗に出すことができると思います。
そのうち改良版もお目に掛けることができるかもしれませんぴかぴか(新しい)

今回はレンズの話の延長と今後イメージベースドライティング(Image Based Lighting)の紹介ができるように下準備も兼ねています。
お題は『魚眼レンズ』です。実装例とともにいってみましょう!

さて、魚眼レンズ(Fish-eye lens)とは一体どのようなものでしょうか。
そもそも「魚眼」とは?ということで軽く解説してみます。

魚眼とは名前の通り「魚の眼」です。
魚の視界は人間の見ている視界とは大きく違っていて片目で180度に近い範囲が見えています。
図解するとこのような感じです。

2009-08-14-fish.png
【魚の視界の例】

魚類の視界は非常に広くこのような視界のカバー範囲となっています。
草食動物なども肉食動物からの危険を察知するために広い視野を持っています。
これだと横からや上下から天敵に襲われても察知することができますよね。魚釣りをしていると人影を魚たちは察知します。
そっぽを向いているようで実はこちら側が見えているという状態ですのでなかなか侮れません。

魚類は波長300〜330ナノメートルの紫外線光も感知できる4色型色覚を持つと言われています。
又、視力がそんなに良いわけではなく、ぼんやりとした視界だそうです。
人間は3色()しか持っていないのに羨ましい気もしてしまいますネ。

目は丸いですので、仕組み的には水晶体での屈折で180度の視界を網膜・視神経まで届けるような構造になります。
イメージは下記リンク先にあるWikipediaの画像を参照ください。

■魚眼レンズ(wikipedia)
http://ja.wikipedia.org/wiki/%E9%AD%9A%E7%9C%BC%E3%83%AC%E3%83%B3%E3%82%BA

魚眼レンズ(ぎょがんれんず)とは、カメラなどに使用する光学レンズの一種で、180度近くの画角を有するものを指す。フィッシュアイとも呼ばれる。 魚眼という名称の由来は、水面下(魚の視点)から水面上を見上げた場合、水の屈折率の関係で、円形に水上の景色が見えることから来ている


2009-08-14-sample.jpg
【魚眼レンズの見え方の例】 Photo by (c)Tomo.Yun

前方180度の範囲から光を集めますので、レンズ自体も本体から出っ張って膨らんだような構造のレンズになっていて、真横から来る光も集められるような特殊なもので実現されています。
例として実際の製品のひとつに下記ようなレンズがあります。ほ…欲しい・・・

■8mm F3.5 EX DG CIRCULAR FISHEYE (株式会社シグマ)
http://www.sigma-photo.co.jp/lens/wide/8_35.htm

2009-08-14-lens.png
【一番外側のレンズの光の屈折のしくみ】

ではこのような見え方をリアルタイムで再現してみましょう。
技術デモは下記よりダウンロード可能です。




◎動作可能な環境
ShaderModel2.0以上に対応したグラフィックボード

2009-08-14-1.png2009-08-14-2.png

Download
HexaFisheye.zip (約1.9MB)

【動作確認済ハードウェア】
nVIDIA GeForce9800GT
AMD RadeonHD4350

【操作方法】
画面左クリック&ドラッグ    視点を回転
    魚眼 ON/OFF

2009-08-14-3.png2009-08-14-4.png



魚眼に切り替えると視界は180度になり、周囲が歪んで見えます。
かなり広範囲が一度に見えているのが分かると思います。

この表現は効果的にシーンの演出にも活用されることがあります。
そして、冒頭で触れた「Image Based Lighting」を行なう際にこの仕組みが重要なポイントになります。
たとえば大域照明(Global Illumination)を計算するにはすべての方向から届く光のすべてを計算する必要があります。
その時に面の一点に届く光を半球でシミュレーションします。

その半球の領域というのはこの魚眼の視界そのものです。
イメージベースで大域照明を実現する場合にはこの魚眼が活躍します。
魚眼表現単体ではゲーム内では使いどころがそんなに多くなく用途が限られると思います。
しかしこれを一つの画像処理の過程の一つとして捉えると応用の幅が広がります。
これについては今後ブログ上でも触れていきたいと思います。

世の中の沢山の物事にもこの魚眼のように広い視野で色々なものを見つけて知識を増やしていきたいですねひらめき
今後も見た目で面白そうなものや綺麗なものを中心に紹介していきたいと思います。


ヘキサドライブでは自社内製ゲームエンジン「ヘキサエンジン」を開発しています。
共にゲーム作品を作っていきませんか?目
新卒・中途ともにご応募お待ちしています手(パー)

posted by 管理人 at 10:07 | Comment(0) | 研究・開発