イベント
[GTC 2017]NVIDIA,VR向けの新しい視線追跡型レンダリング技術「Foveated Reconstruction」を発表
注視したところから視界外周にかけてライティングやシェーディングの密度を変えていくという発想
Perceptually-Based Foveated Virtual Realityは,人間が注視したところのレンダリング解像度を高くして,そこから視界外周に向けて少しずつ低解像度化していくという,典型的な視線追跡型レンダリングに加え,解像度が変移する境界付近で生じる不自然な見え方,俗に言う「トンネル効果」を低減させるため,低解像度映像のボカし効果に対してコントラスト維持を徹底させる工夫を盛り込んだものとなっていた(関連記事)。今回のFoveated Reconstructionは,「画面全域のレンダリング解像度を変えない」点で,従来の手法とは大きく異なるのがポイントだ。
では,何をやっているのか。
Foveated Reconstructionにおいては,注視する点領域に対して高負荷なライティングやピクセルシェーダ起動を行いつつ,視界外周に向けて,それらライティングやシェーディングの密度を下げていくことになる。
「低密度にライティングやシェーディングを行う」と聞いてもピンとこないかもしれないが,要は,巡回するランダムパターン(※一定周期でループするランダムパターン)で歯抜き的にライティングやシェーディングを行うイメージだ。
結果として,注視付近は普通に描画されるが,視界外周の描画結果はまるで砂嵐のようにザラザラしたものになる。そこで,このノイジーな視界外周の描画結果に対してボカしフィルタを適用し,このザラザラを埋めるのである。
実質的に,視界外周は低解像度のレンダリングとなるものの,Foveated Reconstructionであれば低解像度のレンダーターゲットを設ける必要がなく,単一解像度のレンダーターゲットにレンダリングするだけで済む。レンダリングパイプラインを何回も回す必要がなくなるわけだ。
ここで重要なのは,Foveated Reconstructionではレンダリング技法としてディファードレンダリング(Deferred Rendering)を採用している点である。
ディファードレンダリングとは,最初,ライティングやシェーディングも行わず,中間パラメータだけを「G-Buffer」と呼ばれる作業領域にレンダリングして,後段でライティングや材質表現のための高負荷なピクセルシェーダを動かす手法のこと。ディファードレンダリングでは光源からのライティングを画面座標系で行うため,その密度の違いを,ピクセル数の大小で表現できるメリットがあり,それゆえにFoveated Reconstructionの大前提となっている。
一般に「ぼかしフィルタ」と言うと,空間方向に色を分散させて散らすイメージがあると思うが,Foveated Reconstructionでは過去のフレームにあるピクセルを時間的により新しいフレームに持ってきて,時間方向にも散らす処理を行う。
空間方向にも時間方向にも散らしてボカされた視界外周の描画結果は,バイリニアフィルタリングを適用したテクスチャのような,もやっとしつつも若干ボツボツ感の残る見映えになるが,ブースでVR対応ヘッドマウントディスプレイを装着して実際に見てみた限り,注視したところから遠い,視界外周付近の品質低下にはほとんど気付けなかった。
デモを体験中の筆者。この瞬間はフル密度ライティング&シェーディングの映像を見ている。壁面のディスプレイに映っている画面がそのミラーだ |
こちらは注視領域以外を低密度でライティング&シェーディングした映像を見ている。ほとんど違いに気がつかなかった |
ぼかしフィルタ処理がそこそこ“重そう”なFoveated Reconstructionだが,Luebke氏によれば,「それでもヘビーな材質シェーダを動かすよりは低負荷」とのこと。具体的には,フルにライティングとシェーディングを適用するのと比べて,GPU負荷は3〜4割低減できているらしい。大したものだ。
Luebke氏は,「注視したところを高密度に,それ以外を低密度にライティングおよびシェーディングして,そこでノイジーとなった部分をぼかすアプローチは,実のところ,レイトレーシングやパストレーシングとの相性がいい。VRをレイトレーシングで描画するような時代になったら,この技術の価値はさらに増すはずだ」とも述べていた。
GTC公式Webサイト(英語)
- この記事のURL: