LAB
研究室
デモプログラム
【魚眼レンズ】 – Fish-eye lens –
魚眼レンズ(Fish-eye lens)とは一体どのようなものでしょうか。
そもそも「魚眼」とは?ということで軽く解説してみます。
魚眼とは名前の通り「魚の眼」です。
魚の視界は人間の見ている視界とは大きく違っていて片目で180度に近い範囲が見えています。
図解するとこのような感じです。
【魚の視界の例】
魚類の視界は非常に広くこのような視界のカバー範囲となっています。
草食動物なども肉食動物からの危険を察知するために広い視野を持っています。
これだと横からや上下から天敵に襲われても察知することができますよね。魚釣りをしていると人影を魚たちは察知します。
そっぽを向いているようで実はこちら側が見えているという状態ですのでなかなか侮れません。
魚類は波長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度近くの画角を有するものを指す。フィッシュアイとも呼ばれる。 魚眼という名称の由来は、水面下(魚の視点)から水面上を見上げた場合、水の屈折率の関係で、円形に水上の景色が見えることから来ている
【魚眼レンズの見え方の例】 Photo by (c)Tomo.Yun
前方180度の範囲から光を集めますので、レンズ自体も本体から出っ張って膨らんだような構造のレンズになっていて、真横から来る光も集められるような特殊なもので実現されています。
例として実際の製品のひとつに下記ようなレンズがあります。ほ…欲しい・・・
■8mm F3.5 EX DG CIRCULAR FISHEYE (株式会社シグマ)
http://www.sigma-photo.co.jp/lens/wide/8_35.htm
【一番外側のレンズの光の屈折のしくみ】
ではこのような見え方をリアルタイムで再現してみましょう。
技術デモは下記よりダウンロード可能です。
◎動作可能な環境
ShaderModel2.0以上に対応したグラフィックボード
Download
HexaFisheye.zip (約1.9MB)
【動作確認済ハードウェア】
nVIDIA GeForce9800GT
AMD RadeonHD4350
【操作方法】
画面左クリック&ドラッグ 視点を回転
Z 魚眼 ON/OFF
魚眼に切り替えると視界は180度になり、周囲が歪んで見えます。
かなり広範囲が一度に見えているのが分かると思います。
この表現は効果的にシーンの演出にも活用されることがあります。
そして、冒頭で触れた「Image Based Lighting」を行なう際にこの仕組みが重要なポイントになります。
たとえば大域照明(Global Illumination)を計算するにはすべての方向から届く光のすべてを計算する必要があります。
その時に面の一点に届く光を半球でシミュレーションします。
その半球の領域というのはこの魚眼の視界そのものです。
イメージベースで大域照明を実現する場合にはこの魚眼が活躍します。
魚眼表現単体ではゲーム内では使いどころがそんなに多くなく用途が限られると思います。
しかしこれを一つの画像処理の過程の一つとして捉えると応用の幅が広がります。
CATEGORY
- 製品事例 (7)
- デモプログラム (18)
- プログラムTIPS (41)
- C言語 (5)
- C++ (6)
- C++cording (4)
- Ruby (8)
- VisualStudioの使い方 (3)
- 最適化Tips (5)
- ゲーム開発テクニック (2)
- その他 (7)