バーチャルリアリティとモバイル端末

https://www.youtube.com/watch?v=nqzpAbK9qFk

1 comment | 1 point | by WazanovaNews 約3年前 edited


Jshiike 約3年前 edited | ▲upvoteする | link

パーフェクトなバーチャルリアリティの実現にあと何が必要かについては、今年のはじめに「Michael Abrash (Valve -> Oculus VR)の語るバーチャルリアリティ」で紹介しましたが、Oculus Connect 2104のキーノートスピーチでJohn Carmackがアップデートしてくれてます。

Oculus VR自体も新しい開発者向けキット DK2を発表してますが、Samsungと協業したGear VRは、GALAXY Note4を組み込むかたち、つまりワイヤレスなので、広義ではもうモバイル端末ですね。そうなってくると、個人的にはゲーム以外にもどうコンテンツが広がるのかなというのが楽しみですが、まだモバイル端末におけるバーチャルリアリティには課題が残っているようです。

John Carmackファンは多いですが、今回もPRトークなし & 率直に課題をシェアしてくれる姿勢で、好感が持てます。

Gear VRの課題は、

  • 1) 現状の60Hzの低残像ディスプレイではチラツキを感じるユーザがでる。
  • 2) ポジショントラッキング機能がない。

1) チラツキ

  • 覚悟してたほどひどいものではないが、そこそこ気になる人はいる。画面の中心は良くて、両端になると問題がでる。Oculus Cinemaなら、映画館のようにコーナー部分は暗いこともあり、チラツキはない。ダンジョン系のゲームは暗いパレットをベースにしているので問題ない。
  • ぼやけるというほどではないが、頭をはげしく動かすとゴーストのようなものが残ることがある。バーチャルリアリティの実現には大切な課題だが、ディスプレイを担当するSamsungにとっての最優先事項ではないので、対応してくれるかどうかはまだわからない。ソフトウェア的に上書きするかたちでゴースト効果を減らす方法はあり、PC/モバイルで試してはいるが、モバイルでは他の問題もあるので優先順位の絡みあり。
  • 低残像ディスプレイにおいて、DK2ではリフレッシュレート72Hz。周辺メディア機器については、カメラのインプットは60Hz、パノラマ撮影は改善して30Hz->60Hzに。このペースでは、来年にディスプレイが90Hz-120Hzになるとは思えない。90Hzならおそらく95%-98%の人はチラツキをまったく感じないはず。画面をすばやくスクロールしたときのユーザエクスペリエンスも向上するはずだし、インターレーススキャンを応用(更にコンテンツにあわせて動的にスキャンラインを調整するなど)すると対応できると思うので、モバイル端末のディスプレイを提供する各社は実現しようと手をあげてほしい。
  • Samsungのハードウェア部隊を説得するもう一つのアイデア。現状カメラは120-240fpsでキャプチャしていて、それをスローモーションで使っているが、インターレースの低残像ディスプレイにすると、120fpsで揺らぎのないハイパーリアル再生が実現できる。

2) ポジショントラッキング機能

  • ゆらぎのないサブミリ単位のポジショントラッキングというのが目標。ARアプリ + カメラというアイデアもあったので、Qualcomm Vuforiaも試したが、現状の端末の外向きカメラを利用した方法では、絶対的なポジションの認識力という意味で目標にはまだ遠い。
  • どのようにうまくごまかすことができるかというのも考え中。DK1では、ジャイロは方向を計測してくれないので、どれだけのスピードでターンしたかという情報から計算し、向きを推測していた。この考えをポジショントラッキングに応用できるのではないか。絶対的な位置の取得をあきらめて、カメラのスペースにおける相対的なvelocity(速さ)を使うという案。

モバイル端末は既にそれほど昔でないビデオゲームに近いくらいパワフルだが、バーチャルリアリティに利用するには対処すべきAndroidの仕様がある。

  • デフォルトでグラフィック処理時にトリプルバッファーをとるようになっている。フロントバッファーにしたい。Androidのソースコードに直接手を入れてバッファーチェーンを操作し、その一機種では技術的に達成可能なことをSamsungに対して実証した。
  • 次に、CPUクロックと電力パワー管理。
    • グラフィック処理の高速化 & パノラマビューを磨くためにあらゆる最適化をしてみたが、まだ急にパワーが下がることがある。しかし、不思議なことに、ディスプレイに指を置くとビデオがスムーズに再生されるようになった。これはAndroid側のパワー管理機能が原因だとわかった。(指を置くとパワー制御が緩和される。)モバイル端末において、パワー管理はバッテリー消費に直結するので重要。最大のクロックレートは決まっていて、同じタスクを低いクロックでこなせば、パワーを節約できる。その制御ロジックの閾値にひっかかると再生フレームレートが悪化する。クロックレートの固定化で対処しようとしている。
    • デバイスのサーモ管理の問題もある。どれぐらいの熱をもつことを許容できるのかという点には安全性も絡み内部で議論があるが、そこで決めたロジックに従ってクロックレートが制御されると、タイミング的には突然フレームレートが影響を受ける。例えば、スレッド4本 / GPU / Wifi / カメラ / バックグランドでデコーディングとかすると20秒でオーバーヒートという事態がありえる。Oculus Cinemaだと2時間は安定して制御したい。現状では、ゲームを一定時間プレーしたら、再生グレードを下げればプレーを続けられるというようなオプションを設けることも考えられる。
    • スクリーンのリフレッシュとアイバッファーのレンダリングを分離化するというアイデアもある。非同期処理という観点では、GPUはスループットに最適化されていて、遅延に対して最適化されてるわけではない。バーチャルリアリティの期待する遅延制御レベルは高いので、タスクの優先順位をしっかりコントロールして処理できなくてはいけない。自分のAndroidスキルではまだできるという確信のレベルには至ってない。ビデオやハンドコードしたネイティブ対応する開発者には良いプラットフォームだが、ゲームという意味では、多くを占めるUnityデベロッパー向けに真に安定した環境はまだ提供できていない。そういう意味でこの非同期タイムワープ?処理の実現は重要。

#oculusvr


ワザノバTop200アクセスランキング


Back