イベント
[GDC 2016]VRデモ「EVEREST VR」はどのように作られたのか。1.5兆ポリゴンの元データをリアルタイムVRにするまで
SteamVRが発表されたときに人々の度肝を抜いたデモといえば「EVEREST VR」があげられるだろう。このデモは,映画「エベレスト」のVFXを担当したRVXと,Solfar Studiosの共同プロジェクトとして発表されていることから,データは映画と同じものが使用されていると思われる。だが,世界最高峰をバーチャルに体験できるというのは,映画を超えたエンタテインメントとも言えるだろう。
そんなデモを作りあげたSolfar Studiosは,アイスランドにある,わずか10名という規模の小さなソフトハウスだ。そんな少人数でどのようにして壮大なVRデモを作りあげたのか,その手法が明かされた。
まず問題になるのは,山自体のモデリングデータである。エベレスト山頂ともなると「ちょっくらデータ取りに行ってこよう」というわけにもいかない。これには数千枚の写真から3Dデータを作り出す処理が行われている。具体的には,「Designing Reality」の技術が使われているという。
昨今のゲームだと100万ポリゴン単位もそう珍しくはなくなってきているのだが,その100万倍のデータ量となると,とてもそのままではリアルタイムレンダリングなどできるわけがない。ましてVRではゲームより高いフレームレートと描画範囲を求められるのだから,なおさらである。
「EVEREST VR」では,その巨大なデータを1500万ポリゴンずつ複数のパッチに分け,全体で2400万ポリゴンにまでデータを減らして使用しているという。削られた細かい凹凸データなどはノーマルマップで貼り付ける方式だ。ただし,クローズアップが行われる部分では詳細データを使用しており,場合によってはシーン全体より大きなデータが使われることもあるという。
削減したポリゴンデータからさらにLoD(Level of Detail)データを作成して負荷軽減を行う。遠くの景色では粗いモデルデータを使って負荷を減らす方式だ。これに使われたのはSimpolygonのツールだとのこと。
画像も8K解像度のテクスチャを使っているので,そのデータ量は24GBに達するという。全部をメモリ上に持つ必要はないだろうが,それでも3GB制限のGeForce GTX 970(VR環境の推奨GPU)ではとてもではないがリアルタイム処理などできそうにない。
そこで使われたのがGraphineのテクスチャストリーミングツールGraniteだ。テクスチャの圧縮も行われ,これにより8GBの必要量を1GBに抑えられたという。必要に応じてデータを読み込まなければならないのだが,これならリアルタイム処理もできそうな気配だ。
テクスチャデータ |
*分の1に圧縮されている様子 |
デモの表現力をさらに上げているのが,SIMUL trueSKYというミドルウェアである。これは空模様専門の描画ミドルウェアであり,眼下に広がる雲などをリアルに描画してくれる。
ライティングではフレネル係数を拡散成分,反射成分ともに大きく取り,雪の内部反射を表現しているという。
拡散成分 |
反射成分 |
内部反射成分 |
最終レンダリング |
そのほか,特殊効果としてNVIDIAのミドルウェアGameWorksよりTurbulenceが使われており,風に舞う雪の表現などで雰囲気を盛り上げている。スクリーンスペースではあるが衝突判定もされているので,かなりリアルな挙動になっているようだ。そのほか,VRでのレンダリング負荷軽減のために,周辺部の解像度を下げるMultiResも導入されているとのこと。
レンダリングまでの処理は以上のとおりだが,さらにVRならではの処理も加えられている。このデモではプレイヤー自体は表示されないのだが,動き回るとキュッキュと雪を踏みしめる音を出したり,身体自体はなくても自分の影だけは落としたりと,実在感を確保するための工夫や,狭いルームスケールの空間で大きな空間を表す工夫も行われているという。
VRがうまく立ち上がるかは,コンテンツにかかっていると言っても過言ではなく,高品質のコンテンツを支えるさまざまな先端技術を使いこなすことが重要になってくる。このように既存のツールやソリューションなどを活用することで,小規模なソフトハウスでも第一線で通用するVRデモを作れることが証明されたわけであり,意義の大きな講演だったといえるだろう。
- 関連タイトル:
Vive
- この記事のURL: