GDC 2018の3日目となる北米時間2018年3月21日に,Oculus VR(以下,
Oculus)主催のセッション「
Inside Oculus 2018 」が行われた。セッションタイトルどおり,2018年におけるOculusのトピックを語ると言った内容であったため,2018年前半発売予定のスタンドアロン型VR HMD「
Oculus Go 」の話題が多かったが,ソフトウェア周りや開発中の機器など,それ以外の話題も取り上げられたので,ざっくりとまとめてみたいと思う。
「Asynchronous Spacewarp」で,VRユーザーの裾野が広がる
本セッションは,ソフトウェア周りの話題や,Oculus Go,ハイエンドなスタンドアロン型VR HMDとして開発中の「
Santa Cruz 」(サンタクルーズ,開発コードネーム)の話題を,それぞれの担当者が語るという形で行われた。
Ross O'Dwyer氏(Director of Engineering,Oculus)
ソフトウェア周りの説明は,Oculusでエンジニアリングディレクターを務める
Ross O'Dwyer 氏が担当し,ソフトウェア開発キット「Oculus SDK」や,Rift用基本ソフトウェアの新バージョン「Rift Core 2.0」,そしてVRホームアプリ「Oculus Home」などの最新事情について語っている。
O'Dwyer氏は,Oculusにとって,2018年の鍵となる4つのソフトウェア技術を紹介した。1つめは,現在のOculus SDKでサポートされている「
Asynchronous Spacewarp 」(以下,ASW)である。
ASWとは,描画すべきオブジェクトの情報をもとに,描画するフレームの次にくるフレームを自動的に生成することで,見かけ上のフレームレートを上げる技術だ(
関連記事 ,
関連リンク )。
すでに実装済みの技術である「
Asynchronous Timewarp 」(非同期タイムワープ,以下 ATW)は,頭部の動きに合わせて,映像の位置をずらして描画したフレームを自動生成し,フレームの欠落によるフレームレートの低下をカバーするというものだった。
それに対してASWは,頭の動きに合わせたずらした映像を作るのではなく,VRコンテンツ内に描かれるキャラクターのアニメーションなども反映した補完フレームを生成できるというのが大きく異なる。
広く知られているように,OculusのVR HMD「Rift」の場合,90Hz(=90fps)のフレームレートを基本としている。ここでASWを有効にすると,GPUによる描画が90Hzに間に合わず,フレームをドロップしそうになったときに,ASWが補完フレームを生成してRiftに表示する。そのため,常時90Hzのフレームレートを実現できるほどGPUの処理性能が高くなくても,45Hzのフレームレートを確保できるなら,Riftで快適なVRコンテンツを体験できるというのが,O'Dwyer氏の主張だ。
ASW自体は,2016年10月の開発者向けイベントで
発表済み なので,初公開の新技術というわけではない。しかし,認知度が十分でないと考えているのか,O'Dwyer氏は,ASWの重要性を強調していた。氏曰く,「ASWを用いることで,『
GeForce GTX 960 』以上の性能を持つGPUであれば,Riftを利用できるようになる。Riftのターゲットが,これまでよりも1億人以上広がることになる」とのことだ。
GeForce GTX 1080か,それと同等以上のGPUを持つユーザーは26%程度しかいないが,45Hzまで実効フレームレートが下がっても快適さを維持できるASWによって,Riftが要求するPCのスペックも下がるので,約68%のユーザーまで対象が広がると,O'Dwyer氏は主張する
続けてO'Dwyer氏は,2017年12月にβテストが始まったRift Core 2.0で実現されたVRデスクトップ環境「
Dash 」について説明した。
Dashとは,Rift Core 2.0に含まれているもので,VR空間内で利用できるデスクトップ環境である
O'Dwyer氏は,Dashについて「驚くべき体験ができるデスクトップ環境だ」とアピールしていた。Dashは,3Dグラフィックスで描かれる本格的なデスクトップ環境で,Windowsアプリケーションも,この中で利用できるのが特徴だ。筆者はまだ体験していないのだが,映像を見る限りでは,確かにすごそうだ。
Oculusが公開したDashの公式ムービー
加えてO'Dwyer氏は,Dash上で利用する独自のペイントツールを開発中とも述べていた。
Dash上で使える新しいペイントツールも開発中とのこと
Rift Core 2.0自体に関しては,「
Positional Timewarp 」という新技術が発表となった。
ATWは,基本的に横方向の動きを反映して補完フレームを生成する技術だが,Positional Timewarpは「奥行き方向のグリッジを抑える(=奥行きの動きを反映した補完フレームを作る)技術である」(O'Dwyer氏)という。
ただ,Rift Core 2.0でPositional Timewarpを使うためには,VRアプリケーションから奥行きの情報を渡す必要があるそうで,既存のVRアプリケーションで利用するには,アプリケーション側の改修も必要なようである。
Rift Core 2.0に組み込まれるPositional Timewarpが発表となった。ASWとは異なり,アプリケーションの対応が必要とのことだ
O'Dwyer氏による発表の最後は,VRホームアプリのOculus Homeで,ユーザーが独自の3Dモデルが作成できるようになるというものだ。3Dモデルのデータは,
glTF形式(※glbファイル)になるとのこと。
Oculus Homeで,ユーザーが3Dモデルを作成できるように
O'Dwyer氏による発表は以上のとおり。今回初めて明らかになった情報は,
Positional Timewarpのみで,Rift Core 2.0の機能ということもあって,それほど大きなトピックとはならないかもしれない。
Oculusにとって,より重要なのは,やはりASWではないだろうか。これまでミドルハイ〜ハイエンドクラスのGPUを持っているユーザーしか楽しめないと考えられていたVRが,やや下のスペックしかないGPUのユーザーでも楽しめるようになるのであれば,VRユーザーの拡大に大きく寄与するだろう。
高品位なVR体験を提供するOculus Go
続いての話題は,Oculus Goの技術面に関する話だ。このパートは,OculusにてDevelopment Engineeringのリーダーを務める
Chris Pruett 氏である。
Oculus Goの試作機(左)。右は説明を担当したChris Pruett氏(Head of Development Engineering,Oculus)
Pruett氏は,スマートフォンを利用するVR HMDについて,Gear VRを例に,その問題点を取り上げた。
Gear VRに対応するSamsung Electronics製のハイエンドスマートフォンは,おおむね1440
×
2560ドット(※横位置で使うのが前提なので,以下では縦解像度×横解像度で表記する)という高解像度の有機ELパネルを備えているのだが,VR用途における片眼の解像度は,やや低めの1024
×
1024ドットに抑えられているそうだ。これは「両眼を(完全に)レンダリングすると,GPUコストが高く付くため」(Pruett氏)だという。
2560×1440ドットのスクリーンを持つスマートフォンでも,VRでは片眼あたり1024 × 1024ドットしか使えていない
スマートフォンに近いハードウェアスペックを有するOculus Goでは,片眼あたりの解像度を上げるため「
Fixed Foveated Rendering 」という手法を使うそうだ。
Foveated Rendering(フォビエイテッドレンダリング)とは,視点付近は高解像度で鮮明に描き,視点から離れるほど解像度が低くボケたように描写するという技術である(
関連記事 )。人間の目は,視点付近こそ鮮明に見えるが,周辺視野は鈍感で不鮮明にしか見えないので,周辺をすべて高解像度で描く必要はないということから編み出された手法だ。
Oculus GoにおけるFixed Foveated Renderingとは,片眼の描画領域をいくつかに区分けして,区画ごとに固定した解像度でレンダリングしてしまうという手法である。区画ごとに解像度を固定するのでGPU負荷が軽くなると,Pruett氏は主張していた。
Oculus GoにおけるFixed Foveated Renderingの区分けを示したスライド。白で描かれた画面中央部はフル解像度でレンダリングするが,赤い区画は2分の1,緑色の区画は4分の1,青い区画は8分の1,紫色の区画は16分の1でレンダリングする
Fixed Foveated Renderingによる描画例。よく見ると,テクスチャなどの解像度が点線の部分で異なっているのが分かる
Fixed Foveated Renderingの導入により,Oculus Goでは,片眼あたり1280
×
1280ドットの解像度を実現しているとのこと。ここがスマートフォンと大きく違うというわけだ。
Oculus Goの解像度は,片眼あたり1280×1280ドット
もうひとつ,スマートフォンを使うVRで起こりがちなのがコマ落ち(フレームのドロップ)だ。スマートフォンではバッテリー消費を抑えるために,CPUやGPUの動作クロックを,処理負荷に応じて大きく変化させる。そのため「たとえば巨大なモンスターがあらわれたとか,そういった理由でCPUやGPU負荷が急に上がるとフレームがドロップする」(Pruett氏)わけだ。
「この科学的なグラフを見てくれ」とPruett氏が笑いを取ったスライド。大きなモンスターがあらわれたといったことで,急に負荷が上昇しても,それを検出してCPUクロックを上げるまでに若干のタイムラグがあるためコマ落ちしてしまう
Oculus Goもスマートフォンと同じSoCを使っているので,動作クロックを動的に変化させて,バッテリーの消費を抑えているという。ただ,負荷の検出精度を上げることにより,スマートフォンよりもスムーズな描画ができるのに加えて,バッテリー消費や発熱も抑えられていると,Pruett氏はアピールしていた。
最後にPruett氏は,Oculus Goには「72fpsモード」という動作モードがあることも明らかにした。スマートフォン向けVRの場合,60fpsをターゲットフレームレートに設定しているが,Oculus Goでは,ソフトウェア側が72fpsモードに対応することで,よりスムーズな表示によるVR体験が可能になるという。「(これは)非常にクールだ」とは,Pruett氏の弁である。
簡単にまとめると,Oculus Goは,Gear VRと互換性を持ちつつ,スマートフォンを使うGear VRより優れたVR HMDであるといったところだろう。Fixed Foveated Renderingを使って片眼あたりの解像度を上げたり,72fpsモードを用意したりといったところは,VRに長く取り組んできたOculusらしさが現れているのではないだろうか。
Santa Cruzも取り上げられたが実機の披露はなし
セッションの最後には,Pruett氏が,Oculusが2018〜2019年の発売を目指して開発中という,ハイエンドのスタンドアロン型VR HMD「Santa Cruz」を簡単に紹介した。
2017年10月の開発者向けイベントで公開されたSanta Cruzと専用モーションコントローラの画像
Pruett氏の話は,既出の情報を改めて示したおさらいといった内容で,取り立てて新しい話題はない。
Santa Cruzのゴーグル部分には,周囲を検出する4基のカメラを搭載しており,4基のカメラによるインサイドアウト方式のトラッキングにより,広い範囲でユーザーやモーションコントローラの動き検出を可能としているといったあたりの情報は,2017年10月の開発者向けイベントで説明されたものから変わっていなかった。
Santa Cruzには,ユーザーやモーションコントローラの動き,周囲にある物体を検出するために,4基のカメラを内蔵している
4基のカメラによって,周囲の物体やモーションコントローラを広い範囲で検出できるという
Santa Cruzにあわせて開発中の新型モーションコントローラは,ボタンだけでなくスティックタイプの入力装置を備えており,2017年10月時点の試作機が使っていたタッチパネルよりも,緻密な操作ができるという。Pruett氏によると,新型モーションコントローラの試作機を体験してもらったデベロッパからは,すでに,かなり好意的なフィードバックを得ているそうだ。
Santa Cruz用モーションコントローラの変遷。Futureと書かれた右側のものが,現在開発中のもので,スティックを備えているのが分かる
残念ながら,今回のセッションでは,開発中のデバイスが公開されることはなかったのだが,すでに一部のデベロッパが試用しているところからすると,実機の公開もそう遠くはないだろう。その性能に期待したいところだ。