Microsoft Build 2016では、HoloLensのデモを2つ楽しみました。そのうちの1つでは、火星の表面に移動することができました。デモ会場にはNASAの科学者が実際に来ていたことに気づき、私は彼ら数人を探し出して、このようなVR/AR体験の制作過程、デモの基盤となっている技術、そしてHoloLensのようなモバイルチップ搭載デバイスにおける画像レンダリングなどの問題をどのように解決したのかなど、詳しく話を聞きました。
NASAジェット推進研究所(JPL)のミッション運用イノベーション責任者であるジェフ・ノリス氏と、 JPLの拡張現実(AR)・仮想現実(VR)プロジェクトのソフトウェア責任者であるアレックス・メンジーズ氏に話を伺いました。メンジーズ氏は、OnSightとDestination: Marsの地形構築チームも率いています。
「OnSight」は、MicrosoftとJPLが共同で開発したCuriosityローバーのミッション運用ツールの名称です。これはDestination: Marsのデモで使用されている技術であり、NASAの科学者がCuriosity火星ミッションで実際に使用しているツールです。
ノリス氏は、同グループは HoloLens のデモを披露しているものの、多数の VR および AR HMD の実験も行っていると語った。
(私はノリス氏とメンジーズ氏と個別に話し、明確さと長さを考慮して、私の質問に対する彼らの回答を以下にまとめました。)
ARとVRの使い分けについて
Tom's Hardware:実際の体験の構築という点では、あなたはどの程度関与しましたか?
ジェフ・ノリス:大いにあります。まず、システムの中核であるOnSightは[NASA JPL]のツールです。マイクロソフトはその開発に貢献し、現在もJPLで開発を続けています。特に『Destination: Mars』に関しては、ご覧の通りの地形を提供しました。脚本の大部分は私たちが担当し、俳優の演技も監督しました。マイクロソフトは、ご覧の通りのインタラクティブな要素など、多くの部分で貢献してくれました。まさに真のコラボレーションでした。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
TH:でも、マイクロソフトがプログラムしたんですか?Unityで作ったんですか?
JN:いいえ、彼らがすべてのコードを書いたわけではありません。JPLのエンジニアリングチームが私の研究室にいましたし、Unityの専門家たちもいて、仮想現実(VR)と拡張現実(AR)向けのプログラミングを担当していました。
TH:こうした体験を構築するのは、どれくらい簡単だったか、あるいは難しかったか教えていただけますか?マイクロソフトは、非常に簡単だと考えてほしいと思っています。ゼロから構築するという意味では、『 Destination: Mars』を組み立てるのはどれくらい難しかったのでしょうか?
JN:仮想現実と複合現実という分野は、常に挑戦的な分野だと言い続けています。私たち皆、学ぶべきことがたくさんあります。HoloLensなどの類似デバイス向けのアプリケーションを開発する中で、何が使いやすいか、何が快適かという当初の直感の多くは間違っていたことに気づきました。なぜなら、それらの直感はWebアプリケーション、スマートフォンアプリケーション、デスクトップアプリケーションの開発を通して生まれたものだったからです。本当に楽しいのは、この分野で共に働く全員が、こうした疑問を共に解決していくことです。
TH:必要な処理能力について興味があります。VRやARのHMDといったデバイスは、それぞれ要求される性能が全く異なります。HoloLensのような自己完結型のデバイスと、PCに接続する周辺機器であるOculus RiftやHTC Viveのようなデバイスを開発する上で、どのような違いがありましたか?
JN:まさにその通りです。これらのデバイスは特定の特性を強調するものであり、全てを一度に強調することはできません。残念ながら、それは実現不可能な設計です。HoloLensが全てを圧縮して頭にフィットするようになったのは興味深いことです。ワークステーションがどれほど大きいかはご存知でしょう。ワークステーションを身に着けることはできません。少なくとも快適には。ですから、私のチーム、そして私と一緒に働くチームには、ある程度の創造性が求められます。しかし、そのトレードオフの見返りとして、他のことに取り組むことができるのです。
そうですね、私たちが扱うどのプラットフォームでも、特定のものを重視することを選択するのは、一連の課題の始まりだと言えます。
好奇心を持ってイメージングする
TH:キュリオシティ・ローバーはどのくらい早く画像を取得できますか?
JN:ほぼ毎日です。1日中、つまり1日~3日分の作業を一度に実行するように指示します。探査車は毎日私たちと迅速に通信し、大量の画像を取得しています。画像が届くたびに、私たちが歩き回っている全く新しい3Dモデルを自動的に生成します。
アレックス・メンジーズ:まず、ローバーをある地点まで移動させてパノラマ写真を撮影します。近くでは非常に高解像度ですが、遠ざかると解像度が急激に低下します。そこでは、地表データよりも軌道データの方が解像度が高いため、軌道データを使うことが多いです。
拡大する円錐のように、解像度は指数関数的に低下しますが、軌道データの場合はどこでも一定です。[ただし]軌道画像は非常に鮮明な場合が多いので、どちらが人々に最も良い画像を提供するのか、といった点を考慮しながら決定を下します。
そういう意味では、科学者に静止画以上の視点を提供できるという点で、非常に興味深い点もあります。あらゆる場所から最高のデータを集めることができるのです。そして、実に興味深いことも可能です。例えば、岩石の写真をクリックしたり、OnSightで岩石にマーカーを置いたりすると、その岩石を周回軌道上の宇宙船を含むあらゆる角度から撮影した他のすべての画像を表示できます。これは科学者にとって非常に強力なツールです。
TH:では、キュリオシティはセンサーを使って地表を常にスキャンしているのですか?
JN:いいえ、私たちの場合は写真を撮影し、ステレオ相関と呼ばれるプロセスを使って距離データを算出します。これは人間の目の働きに似ています。2枚の画像を見て、その差を求め、カメラのモデルを使って各点の距離を計算します。つまり、距離マップは写真から得られるのです。
AM:そうです。画像が地上に到着するとすぐに、通常の画像処理パイプライン、ステレオ ビジョンなどを通過し、クラウドにアップロードされて、そこで集中的な処理が行われます。ステレオ画像から検出されたすべての形状から表面を構築し、それを画像でペイントするなど、すべて実際のデータになります。
TH:それでワイヤーフレームを作成するのですか?
AM:そうです。でも、これらはすべて自動アルゴリズムで、人間が操作してマッチングするわけではありません。私たちは、数学的、統計的に正確な地表モデルを構築しているのです。
TH:どのようなハードウェアが必要ですか?ローバーには画像処理機能が搭載されているのでしょうか?
JN:場合によっては、そうした計算も行います。(ただし)ローバーは画像(あくまでも画像)を送信してきて、地上でステレオ相関処理を行います。
TH:それはどれくらいのデータですか?かなり多そうですね。
AM:そんなに多くはありません!私たちの制約の一つは、火星から得られるすべての画像をローバーから周回衛星を経由して地球の巨大な80メートルアンテナ(3つあります)に送信しなければならないことです。つまり、実際には帯域幅は非常に限られています。ダイヤルアップ(の速度)のようなものを想像してみてください。
地球科学ミッションは、膨大な帯域幅と膨大な画像を扱うため、はるかに困難な問題を抱えています。つまり、膨大なデータ量の問題を抱えているのです。私たちの問題は、計算の問題に過ぎません。
TH:「Destination: Mars」のデモのアニメーションの一つで、岩の張り出し部分の下の風食の様子が映し出されていました。私の目から見ると、その岩は地面からわずか数センチしか離れていません。探査機はどうやって岩の真下から画像を取得できるのですか?
JN:ご覧いただいているシーンは、複数の異なる位置から観測されたものであることを忘れないでください。最初の観測では、ローバーがどこにいたかすら表示されません。これを奇妙に思う人もいるかもしれません。ローバーが自身の下を見ることができなかった部分のデータに、なぜ穴が開いていないのでしょうか?
理由は、そのシーンを複数の場所から撮影することで、全てを融合できるからです。つまり、張り出した岩は、ローバーが遠くからでも岩を視認できる場所があったのです。
レンダリングゲームをプレイする
TH:バーチャルリアリティではフォービエイテッドレンダリングが使われることがあります。デモでもそういった技術は使われましたか?
AM:どんなディスプレイでも覚えておくべきことは、画面に表示されるピクセル数だけをレンダリングすればよいということです。私たちは、そのレベルのディテールを管理するために、多くの技術的なトリックを駆使しています。
私たちが使うトリックの 1 つは、地形を異なるサイズの「タイル」にスライスすることです。これは、クアッドツリーと呼ばれるものです。さまざまな詳細レベルがあるため、非常に高い詳細レベル、つまり当社のイメージセンサーとステレオデータ製品が許す限りの最高レベルの詳細で地形を構築します。ただし、上に向かうにつれて、解像度をどんどん下げたバージョンを作成します。近くにあるタイルについては、ディスプレイで処理可能な最高レベルの地形を提供できます。つまり、ディスプレイ上のピクセルを飽和させて、近くで利用可能な最大解像度を提供できるようにし、遠くにあるものについては、距離が遠くなるにつれて角度解像度が低下します。
これのすごいところは、低品質のメッシュをレンダリングしていて、実際には遠くにあるにもかかわらず、同じように鮮明に見えることです。そして、近づいていくと、高解像度のテクスチャに切り替わります。
TH:遅延はありますか?例えば、デモで壁に向かって走った時、低解像度でもタイルを捉えることはできるのでしょうか?
AM:おそらくそうではありません。あなたに追いつくでしょう。遅延はフレームレートと同程度、つまり現在は60fpsです。タイルが十分に離れている場合は、選択的にタイルを入れ替えます。そのため、高品質のタイルと低品質のタイルの違いはほとんど見分けられません。十分に近づいて気付く頃には、既に変化が見られます。わずかなノイズはありますが、軽微です。
TH:これはすべて 60 fps ですか?
AM:そうだと思います。確かに、アップデートされたタイルではそのフレームレートを実現できます。
TH:では、私の後ろにあるものも同じプロセスなのでしょうか?レンダリングされているのでしょうか?それとも、私が頭を回した時にだけアクティブになるのでしょうか?
AM:非常に賢いやり方をしています。タイルのもう一つの利点は、選択性が高いことです。適切なサイズなので、視界に入らないものはすべて取り除くことができます。
私たちが行っているもう一つのことは、どの領域が見えるかを事前に計算することです。つまり、近くに丘がある場合、その丘の背後にあるものをすべてレンダリングする必要がないということです。そのため、賢く、すぐに見えるものだけを描画するようにすれば、かなり遠くまで行くことができます。
フラスタムと呼ばれるものがあります。これは基本的にピラミッド型のもので、ディスプレイに表示されるものすべてを指します。つまり、すべてのタイルの周りにボックスがあると考えればよいでしょう。そして、私たちは、その視覚コーンと周囲のボックスの間の幾何学的な交点を探します。
TH:それもフレーム レートでレンダリングするのですか?
AM:はい。
TH:とても賢いですね。大好きです。
AM:特定の場所から見えるものをすべて事前に計算しておくことも、その一因です。見えないことが分かっているものはすべて即座に削除できるので、円錐が何と交差するかを確認する必要があるものの数が減ります。このトリックを使うことで、処理を高速化しています。
TH:もし私が別の尾根を駆け抜けて飛び立ったら、モデルは私にそれを見せたくないのかもしれません…私はただ宇宙に歩いて行ってしまうのでしょうか?
AM:いいえ、そこに到着する前にレンダリングされます。
VRとAR体験を「本」として
AM:私たちは火星の本当にエキサイティングな場所に着陸することができました。周りの岩を眺め、その地形がいかにギザギザで異質であるかを実感し、巨大な砂丘や巨大な山々を見ると、火星は単なる物ではなく、場所になり始めます。そして、そこは実際に訪れて、そこで過ごすことができる場所なのです。
VRとARでは、場所や時間はまるで本のようなものだと思います。いつでも本棚から取り出して、そこを訪れることができ、そこで何をするかは、ある意味あなた次第です。
TH:火星を見るのがあなたの仕事だなんて、とてもすごいですね!
AM:ええ、ここしばらくは、朝一番にコーヒーを飲んで、メールをチェックして、しばらく火星で暮らして、少しコードを書いて、愛しい妻と2匹の猫と夕食に間に合うように戻ってくることです。
地球は本当に素晴らしい場所です。でも、素晴らしいのは、今日火星に行けるだけでなく、明日には探査機を送り込んで探査した場所ならどこにでも行けるということです。つまり、誰もが宇宙探査に行けるようになったのは、まさに宇宙探査の民主化と言えるでしょう。
セス・コラナーは以前、トムズ・ハードウェアのニュースディレクターを務めていました。キーボード、バーチャルリアリティ、ウェアラブル機器を中心としたテクノロジーニュースを担当していました。