【Unity】【VR】立体視の原理から考える天球画像と3Dリアルタイムレンダリングの差異
VRにおける天球画像と3Dリアルタイムレンダリング
はじめに
本記事ではVRにおいて、あるシーンを実際にUnity上でプレイして見た場合とそのシーンを天球画像としてキャプチャし、skyboxとしてUnity上で見た場合の違いについて取り扱います。
便宜的に前者を「リアルタイムレンダリングで見た場合」、後者を「天球画像で見た場合」としています。
言い回しとして正しくないのは承知の上ですが、ご了承ください。
天球画像への疑問
前置きが長くなりましたが、
例えばUnity上でオブジェクトを置いて、それをVRで見るのと、
そのシーンをカメラの位置から360度キャプチャしてskyboxにして見るのは何が違うのでしょうか。
※ポジショントラッキングをした場合の差異については置いておきます。
リアルタイムレンダリングで見た場合の優位性
結論から言って、立体視が違います。
天球画像で見た場合、左右の眼に映る画像に違いがないので、どこかのっぺりと見えます。
これは物が近くにあればあるほど、顕著です。
このあたりの知見は拙文ながら私の過去記事もちょっと関係があることを書いています。
天球画像で立体視は可能なのか
左右に違う天球画像を出してみる
では左右ですこしずらした天球画像をだしてみましょう。 前項の推測が正しければ、これで立体視できるはずです。
やったことは単純で、
- 左右の眼の位置に合わせて、少しずらして二枚の天球画像をキャプチャする。*1
- 左右のカメラにそれぞれskyboxを設定する。
以上です。
この手法の限界
結論から言って、この手法では正面以外が破綻します。
原因は目の位置にあります。
次の図を見てください。
左が人間がいつも見ている見え方です。
対して天球画像二枚手法では完璧な模倣が出来ていないことがわかります。
この状態でオキュラスでみるとチカチカするはずです。しました。
なお、正面(と真後ろ)だけは完璧に模倣できているため、ちゃんと見えます。
まとめ
2016/10/29追記
聞くところによると360動画でも立体視する方法はあるとのこと。調査しだい記事にいたします。
2016/11/25追記
記事にしました。