超雑訳 A Reconstruction Filter for Plausible Motion Blur

Share

ども。Pocolです。
今日は,
[McGuire 2012] Morgan McGuire, Padraic Hennessy, Michael Bukowski, Brian Osman, “A Reconstruction Filter for Plausible Motion Blur”, I3D 2012.
を読んでみます。

Abstract

本論文では,オフラインの確率的再構成のアイデアを応用して,モーションブラー現象を実時間でシミュレートするための新しいフィルタについて述べます。このフィルタは、従来のフレームバッファにスクリーン空間の速度バッファを追加した2Dポストプロセスとして動作します。本研究では,NVIDIA GeForce 480およびXbox 360プラットフォーム上でリアルタイムにレンダリングおよび再構成されたビデオゲームシーンの結果を示すとともに,同じフィルタがオフラインレンダリング画像や実写の映画的な後処理にも適用できることを示します。この技術は高速かつ堅牢であるため、Vicarious Visions社で使用されているプロダクションゲームエンジンに導入しました。

1 Introduction and Related Work

本物のカメラは、入射した光を各画素で露光時間をかけて積分します。そのため、動いている物体の画像空間(画面空間)の速度ベクトルに沿って画像がブラーします。この効果を計算機で生成された画像に反映させるために、私たちは2つの主要なアプローチを用意しました。1つは、ある瞬間に撮影された画像を、モーションブラーのような現象に仕上げる妥当な後処理方法です。これらの手法は、リアルタイムで実行されるため、インタラクティブなアプリケーションに適しています。ただし、入力には露光時間の情報がないため、品質は理想的ではありません(セクション1.1参照)。これに対して、再構成法は、露光区間をまたぐサンプルをフィルタリングしたり間引いたりして、サンプリング演算子を反転させ、動いているシーンの物理的に正しい画像を復元しようとするものです。古典的な再構成フィルタは,ピクセル内のすべてのサンプルを単純に平均化するか,固定された狭いカーネルに対して畳み込みを行うものです[Cook ら1984]。このようなフィルタはそれ自体は高速ですが,レイトレーシングやマイクロポリゴンのラスタライズのような確率的なプロセスによって入力を高密度にサンプリングする必要があるため,オフラインレンダリングでしか適用できません。

最近の物理ベースのスマート再構成法では,基礎となる時空間イメージングプロセス[Eganら2009; Lehtinenら2011]またはサンプルの異方性を推論しています[Overbeckら2009; Shirleyら2011; SenとDrabi 2011]。これらは,古典的な再構成に比べてはるかに低い入力サンプル密度から高品質の画像を生成しますが,スマート再構成自体は1フレームあたり数秒から数分かかる場合があります。しかし,これらの方法は,サンプルが自分のピクセルの境界を越えて寄与することを可能にし,基礎的なサンプリングスキームとモーションベクトルを考慮に入れるなど,もっともらしい方法の特徴を共有していることに注意してくださ。

ゲームなどのリアルタイムアプリケーションにおけるモーションブラーのための、新しい説得力のある再構成アルゴリズムを紹介します。このアルゴリズムは、画質を向上させるためのオフラインでの確率的なサンプルのスマートな再構成のアイデアを利用していますが、典型的なビデオゲームのレンダラーで作成された画像、つまり、各ピクセルの中心に1つのサンプルがある瞬間的な露出の画像で動作します。この手法は、これまでに開発されたもっともらしい手法が制限されていたり、失敗したりする場合に成功します。完全なスマート再構成と比べると、品質は不完全ですが、性能は非常に優れています。例えば、図1のような静止画で観察した場合、離散的なサンプリング方式、オクルージョンの背後にある情報の欠如、そしてすべてのピクセル近傍で単一の動きベクトルが支配的であると仮定するヒューリスティックにより、新しいブラーは制限されます。しかし、現在のハードウェアでは約3msでレンダリングが完了し、意図した状況であるアニメーションの下で見ると、ノイズやブラーミスのアーティファクトが視覚的に与える影響は比較的小さいです。

スマート再構築よりも優れた性能と、これまでの説得力のある方式よりも優れた品質に加えて、新しい説得力のある再構築では、速度の特定の非物理的操作が可能です。私たちはこのアルゴリズムを、画面上の要素の視覚的インパクトと明瞭さをアーティスティックに的にコントロールすることが不可欠なケースである、ゲーム制作の状況で開発しました。

※図は[McGuire 2012]より引用

Camera Parameters
カメラが高速で動く物体を追いかけると、その物体はシャープなままで、それ以外の部分がボケます(図8)。これは、我々が関心を持っている動きが、画像平面上で測定され、観測者自身の動きや方向と相対的なものであるためです。現在のゲームや映画は、フレームの中で視聴者の注意を独立させてレンダリングしています。レンダリングされた画像を見ると、カメラとアイトラックが別の物体を追跡している場合、元のシーンを肉眼で見るのとは異なる体験をすることになります。フィルムの露光時間がフレームの表示時間よりもはるかに短いのはこのためであり、動いているものがぼやけて見えるのもそのためです。Valve社では、フルフレームの15%のシャッターと、画面幅の4%の最大速度を使用することを推奨しています[Vlachos2008]。この論文のすべての結果は、分析のためにブラーを誇張するために、1/2フレームの露出でレンダリングされています。

我々は、十分にロバストで低レイテンシーのアイトラッキングが可能であれば、将来的には、観測者の実際の注意に基づいてモーションブラーを実行することが望ましいと考えています。また、リフレッシュレートが非常に高い場合(1000fpsなど)は、レンダリングによるモーションブラーを行わないことも考えられます。しかし、モーション・ブラーは、オクルージョンやデフォーカスと同様に、細部を抽象化して視聴者の注意を別の場所に向けるための強力なツールです。例えば、監督は、観客にバイクに乗ったアクションヒーローに注目してもらい、背景のビル群には注目させないようにするかもしれません。

1.1 Previous Real-Time Plausible Methods

ここでは、リアルタイムレンダリングのために設計された説得力のあるブラーアプローチの主なアイデアについて説明します。簡潔にするために、最近のゲームやゲームエンジンを強調していますが、これは網羅的な調査ではありません。

Accumulation buffering
複数のサブエクスポージャーフレームを平均化します。十分なサンプルがあれば理想的な結果が得られますが、各フレームを何度もレンダリングするコストは膨大なものになります。

MotoGP2やSplit Second [Ritchieら2010]は,レーシングゲーム複数のサンプルや異方性サンプルを用いて動く物体のテクスチャをブラーします [Hargreaves 2004; Loviscach 2005]。これにより、移動物体のシルエットやテクスチャの継ぎ目がシャープに残るという誤った結果になります。

オブジェクトの境界をぼかすには、移動するオブジェクトのジオメトリを押し出したり、拡張したりして、それらの間のシェーディングやテクスチャをブラーし、フォーワードレンダリング時にアルファブレンド[WlokaとZeleznik 1995; Tatarchukら2003]します。これには、ほぼ完璧な深度ソートと、ほぼ凸状のジオメトリが必要です。

MaxとLerner[1985]は,シャープなオブジェクトを別々のバッファにレンダリングした後,オブジェクトの速度によって独立してブラーをかけ,その結果を深度順に合成した最初の例です。これは「Need for Speed 2」で使用され、おそらく「MotoGP ’07」や「Pure」ではPepper[2008]のホイールへの特化で使用されていると思われます。これは、オブジェクトの自己排除が少なく、奥行き方向に適切に並べられる場合に有効です。レースゲームではよくある条件ですが、一般的なシーンではそうはいきません。Shimizuら[2003] は,単一オブジェクトのためのピクセル単位の変化を述べています。

 現在の技術では,速度バッファをレンダリングし,各ピクセルでその速度に沿って前後の隣接するサンプルを累積することで,ピクセルごとのブラーを計算しています[Rosado 2007; Ritchieら2010]。これにより、ブラーオブジェクトには4つの問題があります。シャープなシルエット、背後の背景が常にボケる、ボケが元のシルエットに限定されるために縮小する、2値の深度比較では傾斜した表面がブラー不足になる、などです。

Velocity Dilation Methods
ここでは、ピクセル単位で直接ブラーをかける場合の問題点を解決するために、速度バッファを拡張する3つの方法について説明します。我々のブラーは、支配的な近隣の速度を計算することで、速度を拡張します。我々は、拡張された速度をヒューリスティックとしてのみ使用し、オリジナルの速度に沿ってブラーを蓄積することで、以下に説明する技術の制限のいくつかを克服することができます。

Green [2003]は速度描画時にオブジェクトを押し出します。これにより、動いているオブジェクトの境界が正しくソフトになりますが、オブジェクトの近くの背景がオーバーブラーになってしまいます。押し出しプロセスはシャドウボリューム生成法に似ていますが、その制限を共有しています。例えば、ジオメトリの折り目に沿って余分な縫い合わせを入れた隙間のないの追加ジオメトリを必要とし、パーティクルやアルファカットではうまく機能しません。

ロストプラネットのブラーの詳細は未発表ですが、Sawadaの発表[Sawada 2007]によれば、おそらく低解像度のバッファに奥行きのある不透明な線分をレンダリングすることで、速度バッファを拡張しているのだと思われます。Potmesil[1983]の手法のバリエーションを使用している可能性もありますが、ゲーム内で観察できるアーティファクトは前者の手法と一致しています(例えば、https://www.4gamer.net/news/image/2007.08/20070809235901_12big.jpg)。

Unreal Engine 3では、速度バッファ[Epic Games 2010]をガウスで畳み込みます。これにより、オーバーブラーの問題ではなく、押し出しの制限を回避することができます。このオーバーブラーは、静止画よりも動画の方がはるかに見栄えが良いのですが、動画の場合でも、各オブジェクトの周りに「見えない」バッファがあるように感じられることに注意してください。ベクトルの成分的なぼかしは、ベクトルの方向を曲げてしまい、実際には同じ点の広がりを表現しているにもかかわらず、反対の速度ベクトルが相殺されてしまうことがあります。

CryENGINE3では、オブジェクトとカメラのモーションブラーを別々に計算して、デプスマスクの下で合成しています。Valve社の技術[Vlachos 2008]のように、半分の解像度の画像上でカメラの動きをシミュレートします。オブジェクトブラーについては,4つの1次元拡散パスで速度を拡張し[Sousa 2008; Sousa 2011; Kasyanら2011],コンソールでは\(S = 9\)サンプルタップ,PCでは\(S = 24\)タップをアキュームレーションします。これにより、他の手法と同様に、複数の物体が動いたときにぼかしの方向が乱れ、背景がぼやけてしまいます。

Other Approaches
分析的なモーションブラー[Grant 1985; Sungら2002; Gribelら2010; Gribelら2011]や、フォトリアリスティックではないモーションブラー[JonesとKeyser 2005; Obayashiら2005; Bouvier-Zappaら2007]に関連する技法について興味がある読者はこの論文のスコープである妥当でリアリスティックな外見を持つゲームライクなインタラクティブなアプリケーションの範疇を超えるので,参考文献を参照して下さい。

1.2 From Offline-Smart to Real-Time-Plausible Reconstruction

我々のブラーの構造は、Shirleyらの[2011]スマート再構築をモデルにしています。Shirleyらの手法は、サンプル密度が大きくなると物理的に正しい結果に収束するはずですが、他のスマート再構成手法と比較して、ライトフィールドとサンプリングに関して洗練されていないことに留意してください。この単純さこそが、技術による加速に適していると言えるでしょう。

Shirleyらのオリジナルの手法は、ピクセルごとに多くの確率的サンプルを入力し、それらを深さ方向にソートしなければならないため、現在のラスタライズ用ハードウェアでは非常に遅く、適用することが困難であり、新しい確率的ハードウェアの提案という形をとっています。しかし、彼らの技術の根幹をなす2つのアイデアは、実際には高密度や確率的な入力を必要としないことがわかりました:1) 画素の外側のサンプルも考慮する。2) 静止画(例。シャープ)と動画(例。ブラーがかっている)、前景と背景という2つの軸でサンプルを分類し、組み合わせる。Shirleyらの方法では、サンプルノイズと離散的な分類の両方を減らすために、各ピクセルで多数(例えば、\(S = 5 \times 5 \times 16 = 400\))のフィルタータップを組み合わせる必要があります。この方法では、膨大な\(z\)オーダーのカテゴリ化を行います。私たちの新しい手法では、これらのステップを、ボケ味と\(z\)オーダーの両方について、オーダーに依存しない連続的なサンプル分類で実行します。これにより、ソートを行わずに、比較的少ない数(\(S = 5\)から\(15\))のフィルタタップでモーションブラーの再構成が可能になります。

2 Algorithm

2.1 Overview

図3は、サイズ\(n = w \times h\)の入力バッファと出力バッファに対するブラーアルゴリズムの構造を示しています。入力\(C\)は、従来のラスタライズによってレンダリングされたような瞬間的なカラー画像です。スクリーン空間の速度バッファ\(V\)は、各点が前のフレームで投影されたであろう位置からのピクセルオフセットをエンコードし、\(Z\)はカメラ空間の深度を格納します。

※図は[McGuire 2012]より引用

ブラーアルゴリズムは、\(V\)から2つの小さな中間バッファを生成し、これらのバッファとすべての入力バッファから出力を再構成します。再構成フィルター(リスト1)は、最大モーションブラー半径\(k\)ピクセルと\(S\)個の再構成フィルターサンプルタップに関するアプリケーション固有のパラメータを持ちます。\(k\)は,観測者からオブジェクトまでの予想される距離,オブジェクトの速度,および露光時間に基づいて選択しますが,大きな値(たとえば40ピクセル)はテクスチャキャッシュのパフォーマンスに悪影響を及ぼす可能性があることに注意してください。\(S\)は、最終画像のサンプル分散による許容可能なノイズに基づいて、奇数の整数として選択します。これは、芸術的観点、ディスプレイの種類、フレームレート、シーンのテクスチャ、後処理フィルタ、シーンのローカルコントラストに依存します。特に断りのない限り、本稿の画像は\(1280 \times 720\)で\(k=20\)、\(S=15\)でレンダリングされています。

Motivating Analysis
その他の点を固定して、画質をほぼ一定に保つためには、解像度や速度が大きくなっても比率\(k/S\)は一定でなければならないという仮説を立てました。この単純化された仮定に基づいて、漸近的な解析を行います。これにより、ブラーアルゴリズムが現在のGPUに適しており、将来的にはより高解像度でより多くの並列処理に対応できる理由が明らかになりました。セクション3の実験結果では、この解析によって抽象化された定数が、現在のアーキテクチャで実用的なレンダリング時間をもたらすことが示されています。

ブラーアルゴリズムの鍵となるアイデアは、\(O(kn)\)時間の同期散乱アルゴリズムを、\(m\)-wayプロセッサ用の\(O(kn/m)\)時間の並列収集アルゴリズムに変換することです。図2(a)は、説明のために\(12 \times 16\)の解像度で、月からロケットが飛び立つ様子を表しています。これは,古典的な決定論的ラスタライズによる瞬間露光画像を表しています.図2(b)は、速度バッファを表しています。尾翼のピクセル\(Y\)について考えてみましょう。このピクセルは、露光時間中に、(c)に示すように、\(X\)を含む5つのピクセルに寄与するはずです。

(d)のように散乱によるモーションブラーを推定することは簡単ですが、非効率的です。入力を反復し、各点を線分に置き換え、深度順を考慮して結果を合成します[PotmesilとChakravarty 1983]。これは、\(O(kn)\)時間のソリューションです。同様のことをポリゴン単位で行うこともできます[Max 1990]。スキャッターブラーは,GPUなどのワイドメモリバスを持つ並列ラスタライズアーキテクチャでは非効率的です。順序付けには同期が必要であり、不規則な出力反復により、メモリトラフィックのコヒーレンスと合体が制限されます。

任意の有界オフセット散乱演算は、各ピクセルで最悪の半径のディスク上に単純に収集することにより、並列ギャザーアルゴリズムに変換することができます。モーション・ブラーの保守的なギャザー実装(e)は、出力を繰り返し、各ピクセルに\(O(k^2)\)個の入力サンプルを集めますが、その速度が現在のピクセルに向かっていないため、ほとんどのサンプルを無視します。これは、\(O(k^2n/m)\)時間のソリューションです。

ストローマンのディスクギャザー演算の問題点は、各ピクセル\(X\)において、その上にブラーがかかる可能性のある\(Y\)のようなピクセルを、網羅的に探さなければならないことです。二次的な探索コストをかけずにギャザリングの並列性とキャッシュ効率を維持するために、近隣内の最大速度であるNeighborMax (f)に基づいて、各ピクセルの1次元ギャザリングフットプリントを計算します。

このとき、ラインギャザリングフィルタ(g)は、NighborMax[\(X\)]に沿って探索すればよいです。NeighborMaxは、\(n/k^2\)タイル(それぞれのサイズは\(k^2\)ピクセル)に対して、2つの\(m\)-wayパラレルギャザリングで計算されます。このアルゴリズム全体は\(O(kn/m)\)時間で、高いメモリロカリティと並列メモリアクセスを実現しています。

NeighborMaxはヒューリスティックなカーネルを提供しているため、場合によっては、ギャザー処理で、あるピクセルにぼかしをかけるべきすべての近傍領域を見つけられないことがあります。その結果、ブラー不足のアーティファクトが発生します。結果セクションでは、このケースを想定して作成したいくつかのシーンを報告し、エラーの視覚的影響を示しています。

※図は[McGuire 2012]より引用

2.2 Buffers

(シャープな)入力カラーバッファ\(\rm C\)は、トーンマッピングやガンマエンコーディングを行う前の高ダイナミックレンジのフレームバッファで、GL_RGB16Fフォーマットを使用しています。結果の画像には、典型的なゲームの後処理であるブルーム、トーンマッピング、モーションブラー後のFXAA [Lottes 2009]アンチエイリアシングが含まれています。MSAAを使用する場合、\(\rm C\)は1ピクセルあたり1サンプルのリソルブ後のバッファでなければなりません。将来的には,MSAAのサンプルを直接読み込んで,エッジ部分の画質を向上させたり,ノイズを低減させたりするブラーアルゴリズムの開発も考えられます。

G3Dライブラリ[http://g3d.sf.net]のSS_GBufferシェーダを使用して、速度とリニアZバッファを生成します。この方程式でのハーフスプレッド速度は、露光時間に制限され、最大\(k\)にクランプされます。すなわち,

\begin{eqnarray}
{\vec q}X &=& \frac{1}{2}(X – X’) \cdot ({\rm exposure time}) \cdot ({\rm frame rate}) \\
V[X] &=& \frac{ {\vec q}X \, {\rm max}(0.5{\rm px}, {\rm min}(||{\vec q}X||, k)) }{ ||{\vec q}X|| + \epsilon }
\end{eqnarray}

ここで、\(X’\)と\(X\)は、前フレームと現フレームにおける点の画像空間上の位置です。つまり、点は\(X \pm {\rm V}[X]\)を覆う線上のピクセルに寄与します。\(\rm V\)をバイアス、スケールしてGL_RG8バッファに格納する。コンソールでは、フィルレートとメモリを節約するために、\(\rm V\)を低解像度でレンダリングします。最近のGPUでは、カラーレンダリングパスの間に追加の描画バッファにフル解像度でレンダリングします。

Zは、GL_R16FリニアカメラスペースのZバッファとして実装されており、近くの値が小さく負の値、遠くの値が大きく負の値となっています。任意の深度エンコーディングは、適切な比較記号と定数で置き換えることができます。TileMaxとNeighborMaxは、それぞれ\(w/k \times h/k\)のサイズを持ち、\(\rm V\)のビットフォーマットに従います。また、出力は\(w \times h\)のサイズを持ち、\(\rm C\)のビットフォーマットに従います。720pの場合、すべてのデータバッファの合計サイズは15MBです。

2.3 Filter Passes

アルゴリズムは3回の2Dパスを行います。最初のパスでは、タイルごとに支配的な速度を式1によってTileMaxに集めます。2回目は、任意の隣接するタイルの最大速度を式2で計算します。\(||{\rm V}[X]|| \leq k \, \forall X\)の場合、優勢速度の仮定が成り立つときに、各ピクセルが影響を与えることができる最も遠い隣人を認識していることが保証されます。vmax演算子は,コンポーネントごとの最大値ではなく,最大の大きさを持つベクトルを返します.

\begin{eqnarray}
{\rm TileMax}[x, y] &=& {\rm vmax}_{u \in [0, k)} {\rm vmax}_{v \in [0, k)} (V[kx + u, ky + v]) \tag{1} \\
{\rm NeighborMax}[x, y] &=& {\rm vmax}_{u \in [-1, 1]} {\rm vmax}_{v \in [-1, 1]} ({\rm TileMax}[x + u, y + v]) \tag{2}
\end{eqnarray}

3番目のパスでは、リスト1の再構成フィルターを完全な解像度で適用します。各ピクセル\(X\)では,近傍の支配的な速度ベクトル\({\vec v}_N\)に沿って,各近傍\(Y_i\)の寄与度\(\alpha_Y\)を計算します.\(\alpha_{Y_i}\)には3つの項があります。明らかなもの(ケース1)は、\(Y\)がブラーがかってい\(X\)の前を通過するときに寄与するというものです。この場合、\({\rm V}[Y]\)が\({\vec v}_N\)に沿っていることを暗黙のうちに仮定していることに注意してください。これは誤差の原因となりますが、\(|{\rm V}[Y] \cdot {\vec v}_N|\)のような要素を取り入れることで、そのような状況では全くぼかさないよりも、誤った方向にぼかすこともあった方が良いことがわかりました。

ケース2では、\(X\)自体がぼやけているので、それを見透かしているように見えるはずです。残念ながら、\(\rm C\)では背景が\(X\)に遮られてしまっているため、不明です。確率的な入力があったとしても、このようなケースは起こり得ます。ここでは、Shirleyらのアルゴリズムは、\({\rm V}[Y]\)がそれを正当化するかどうかに関わらず、隣接するすべての背景サンプルを平均することで背景を推定しています。私たちは彼らの合理的な考えに従い、どのような遠い点であっても、全くないよりはバックグラウンドの推定値として優れていると考えます。ケース3は、XとYが共にぼやけていて、互いの速度の広がりの中にある場合です。なお、すべての分類は離散的ではなく連続的であり(図4)、\(\rm V\)については\(xy\)、\(\rm Z\)については\(z\)の両方の限られた精度に対するロバスト性があり、ソートを避けるために順序に依存しません。

※リストは[McGuire 2012]より引用

※図は[McGuire 2012]より引用

3 Results

図5は、新しいブラーアルゴリズムの結果を、これまでに実装したピクセル単位のブラーのもっともらしい方法と比較したものです。シーンのレイアウトとテクスチャは、「ブラー上にシャープ」と「シャープな上にブラー」の場合を強調するように設計されています。上段はフィルタリングされていない入力画像\(\rm C\)を示しています。2段目は、方向性のない速度ベクトルに沿って収集した結果を示しています[Rosado 2007; Valachos 2008; Ritchieら2010]。この方法によるアーティファクトは、シャープなシルエット、移動物体の見かけ上の縮小、およびキューブの背後にある背景の誤ったブラーです。3列目は,拡張された速度バッファによって改善されています([Sawada 2007]:[Epic Games 2010; Sousa 2008]と同等)。移動物体は元のシルエットを超えて正しくピクセルに影響を与えるようになりましたが、キューブを通して見ると背景もブラーしており、ブラーするはずのシルエットがシャープなままになっています。最後の行は、私たちの新しい手法を示しています。動いているキューブは元のシルエットを超えて正しくブラーし、動いているオブジェクトを通して見た背景はシャープで、動いているエッジはすべてぼやけています。

※図は[McGuire 2012]より引用

図6は、カメラの動きが大きい場合のモーションブラーです。カメラの動きと物体の動きの区別はなく、どちらもシーンポイントが画面内の異なる位置に投影されて発生するものです。上の画像では、カメラが貨物室の中で回転しているため、水平方向に大きなブラーが発生しています。下の画像では、カメラはCrytek Sponzaのアトリウムを前方に向かって飛んでおり、シーンの深さに応じて放射ブラーが発生しています。

※図は[McGuire 2012]より引用

図7は,異なる速度と方向で回転する連動した歯車を示しています.これは、各タイルが単一の動きベクトルで支配されているという仮定が成り立たないため、我々のアルゴリズムにとっては難しいケースです。その結果、右上の内部スポークを持つ歯車にアンダーブラーのアーティファクトが見られます。左下のスポークは右上のスポークよりもブラーしています。これは、背景にある大きな歯車が右上のNeighborMaxを支配し、スポークの速度を抑制しているためです。

また、図7は、結果画像のノイズに対する\(S\)の影響を示しています。このノイズを抑制したりフィルタリングしたりすることが多いテレビに表示するゲーム機では、\(S=5\)で十分であることがわかります。一方、より精密なモニターを使用するデスクトップグラフィックスでは、\(S=15\)にすることで、画質の向上が感じられますが、コストはほぼ同じです。これは、すべてのピクセルでフィルターを実行することによるオーバーヘッドが、少数のテクスチャフェッチを支配するためです。

※図は[McGuire 2012]より引用

図8は、スポーツカーの入力画像と、異なる速度バッファでレンダリングされた2つの結果を示しています。中央の結果は、車の横にカメラをつけてレンダリングしたため、背景や道路がぼやけています。車の色が背景を汚していないことに注目してください。

ホイールはカメラに対して相対的に回転しているため、若干ぼやけています。下の結果は、静止したカメラで撮影したため、車がぼやけています。車の前縁部がボケているため、背景のディテールが見えています。

※図は[McGuire 2012]より引用

図9は、ゲームキャラクターをインタラクティブに操作しているときに撮影されたフレームのシーケンスです。ピクセル単位の測度は、キャラクタの体全体のブラーを正しく変化させます。また、次数に依存しないフィルタの寄与は、キャラクタが自分自身とシーンの両方に重なる部分の正しいブレンディングを保証します。

※図は[McGuire 2012]より引用

図1のように\(1280 \times 720\)でカメラの動きがすべてのピクセルでブラーを発生させている場合、GeForce 480は\(k=31\)で6.2ms、\(k=15\)で3.0ms、\(k=7\)で2.8ms、\(k=5\)で2.7msでブラーをレンダリングしました。Xbox 360は\(k=5\)で1.5msでレンダリングしています。

4 Discussion

4.1 Artistic Controls

アーティスティックな制御は、プロダクションの特殊効果には不可欠です。イメージスペースでの作業では、美的目的のために物理的に正しい速度バッファから逸脱することが比較的容易にできます。ジオメトリやパーティクルを直接速度バッファにレンダリングすることができ、カラーやデプスをバイパスすることができます(図10)。Lost Planet 2では、イメージスミアを利用して強力な爆発を表現しています。また、熱の歪み、大音量のスピーカー、半透明の「クローク」されたキャラクターなどを模倣するためにも適用できます。

※図は[McGuire 2012]より引用

パーティクルエフェクトやキャラクターの手足などは、攻撃などの速い動きを強調するためにオーバーブラーにし、看板などの目につく特定のものはアンダーブラーにすることが望ましい場合があります。オブジェクトは、メッシュごとの定数やベロシティーマグニチュードテクスチャマップを使って、レンダリングする速度の大きさを変えることができます。

前述したように、人間の視聴者の注意はフレーム内で移動するため、予測が難しいです。例えば、現実に回転している人は、放射状に外側を見つめるのではなく、一定のシーンポイントの間で素早くフォーカスを移動させます。飛行機や車のように、速度が大きくゆっくりと変化する物体をカメラが特別に追跡する場合を除き、カメラの動きの重要性を減らすことをお勧めします。そのためには、前のフレームの物体の位置と、前のフレームと現在のフレームの間で補間されたカメラ変換を使って、各X’を計算します。回転にはslerp、平行移動にはlerpを使用します。三人称視点の場合は、前のカメラの0~15%のみを使用し、落下やジャンプパッドなど、速度が速い特殊なケースでは、それを増加させることをお勧めします。

この手法はリアルタイムレンダリング用に開発したものですが、どんな画像でも後処理が可能です。図11は,我々のブラーを適用したレイトレース画像である(データはLehtinenら[2011])。図12は,Cookら[1984]の有名な結果を実際に再現したもので,手描きの粗い深度・速度マップで補強された写真にブラーを加えたものです。ブラーはリアルタイムで実行されるため,アーティストはモーションブラーの絵筆を使っているかのように,VとZのバッファをインタラクティブに描くことができます。

※図は[McGuire 2012]より引用

※図は[McGuire 2012]より引用

4.2 Limitations

入力は従来のレンダリング画像なので、ブラーアルゴリズムは露光時間内のある瞬間に照明を固定します。これは、これまでのリアルタイム技術を含め、多くのモーションブラー技術に共通する問題です。しかし、確率的な入力を受けるオフラインの手法と比較して、我々の手法は、光や影の発生源ではなく、オブジェクトの動きに基づいて、影や陰をブラーすることができます。我々は、この結果が反射や硬い影では気になると考え、シャドウキャスターと反射物体の別々の速度場に基づいて、影、ハイライト、反射を再構築する方法を簡単に検討しました。しかし,PCFや真のエリア・ライト半影によるぼやけた影に対しては,アーティファクトの視覚的な影響が小さいことがわかったので,この方法を断念しました。「シャープ」と「ブラー」を正しく区別することは、「中程度のブラー」と「非常にブラー」を正しく区別することよりも、知覚的に重要であると考えられます。

多くのブラー技術がそうであるように、この新しい手法では、すべてのオブジェクトに直線的な速度を仮定しています。中程度のキャラクターと回転運動に関する実験結果(例:図1、9、7)は、アクションシーンでもこの仮定による誤差の視覚的影響は限定的であることを示していますが、低フレームレートでレンダリングされた大きな非線形運動では明らかに画質が劣化します。

他の画面空間フィルタと同様に、ブラーは技術的にビューポートに幅\(k\)のガードバンドを必要とするため、画面外のオブジェクトが画面にぼやけてしまう可能性があります。しかし,テレビはコンソールでレンダリングされた画像をクロップするので,実際にはガードバンドを使用しません。

4.3 Future Work

ゲームのようなアプリケーションでは、次のステップとして、近隣で大きく変化する速度に対応し、モーションブラーともっともらしいデフォーカスを組み合わせることが必要です。カメラの回転により、静的な要素の2次元速度が動的な要素の速度と直交している場合、優勢速度の仮定の違反によるアーティファクトが最大となります。

複数の速度に対応するためには、\({\rm V}[X]\)に沿ったサンプリングだけでなく、\({\vec v}_N\)に沿ったサンプリングや、近隣の第2主成分の追跡など、いくつかの可能性が考えられます。

もしハードウェアで実装されていれば,MSAAを用いた確率的スラスタライズ[Akenine-Möllerら2007; Fatahalianら2009; Brunhaverら2011]は,我々の再構成アルゴリズムに対してより優れた入力を提供することができるでしょう。このような状況にこのアルゴリズムを拡張することは、特定のラスタライズアルゴリズムとサンプルパターンによって形成される興味深い課題となります。

Acknowledgements
提案と編集をしてくださったJaakko Lehtinen氏、David Luebke氏(NVIDIA)、Naty Hoffman氏(Activision)に感謝します。図12の作成にはMichale Mara氏(Williams)が協力してくれました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください