Oculus Riftの登場で全天球パノラマ画像の活用シーンが増えましたね。

今まではパノラマ画像を撮影しても、鑑賞方法といえば平面のディスプレイ上でグリグリ回すくらいでしたが、Oculusで見ることでその景色の中へ入り込む感覚を味わうことが出来るようになりました。

ですが、全天球とはいえ結局は平面画像として記録しているわけで、パノラマ画像をSkyboxに設定しただけでは風景が投影された巨大なドームスクリーンの中心に自分がいる、という状態になります。

skybox

上空で撮影したようなパノラマ写真で浮遊感を楽しむなら別ですが、自分が気になるのは足元です。

写真では地面があるのに、距離感的には宙に浮いてる感じ。

もっと「その場に立っている感」「地面の存在感、接地感」が欲しいわけです。

 

全部3次元で構築したシーンなら問題ないわけで、それこそがVRやろ、とは思いますが、既存のパノラマ画像を利用するときにあまり手間をかけずに地面の存在感を出す方法として試してみたので紹介したいと思います。

 

前置きが長くなりましたが、要するに地面ポリゴンを作ればいいということです。

地面用のテクスチャを別途作るのが一番いいと思いますが、ここでは元のパノラマ画像を出来るだけそのまま手軽に使うという方向でいきます。元のパノラマ画像というのは下のような360度×180度の全天球をカバーした画像を想定しています。

Pano

 

ぱっと思いつく方法として2種類やってみました。

1. Skyboxを使いつつ地面ポリゴンだけ置く

2. 半球型のskygroundモデルを使う

1について

背景のskyboxに合うように地面ポリゴンだけを配置します。

 

図のように視点に近い部分はポリゴンを細かくすると歪みが少なくなります。(地面用のテクスチャを別途作る場合は必要ないと思いますが)

境界線付近は対象の風景に合わせて調整が必要かも。

今回は水平線付近のポリゴンのエッジが目立たないようにアルファを入れました。

それでもあまり馴染んでませんが。。。

Plane_wire
Plane
2について

図のような半球型のモデルを使います。

 

UVを調整したモデルを作るのがちょっと面倒ですが、作ってしまえばそのモデルにパノラマ画像をテクスチャとして貼るだけなのでお手軽。

hemisphere
上記の方法と、skyboxのみを切り替えられる実行ファイルを置いておきます。

Mac用(SkyGroundVD.zip 22MB)

Win用(SkyGroundVD_win.zip 19MB)

(Oculus runtime 0.4.4)

 

起動すると足元に下記のアイコンが表示され、数字キーで3つの方式が切り替わります。

button

「1」skyboxのみ

「2」skyboxと地面ポリゴン

「3」半球型モデル

「R」ヘッドポジションリセット

 

水平線付近が馴染んでなかったり歪みが出たりはしていますが、

地面の存在感は出ると思います。

また数十センチ頭を移動させるくらいの視点移動には耐えられるかと。

 

視点の近くに地面以外のものが写っているとダメだったり条件は限られますが、

単眼のパノラマ映像で手軽に接地感を出す方法としてどうでしょうか。