39
Morgan McGuire Padraic Hennessy Michael Bukowski Brian Osman 1 NVIDIA and Williams College Vicarious Visions Vicarious Visions Vicarious Visions CG 論文講読会 2013 / 2 / 12 Ryo Suzuki i3D 2012

CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"

Embed Size (px)

Citation preview

Morgan McGuire Padraic Hennessy Michael Bukowski Brian Osman

1

NVIDIA and Williams College

Vicarious Visions

Vicarious Visions

Vicarious Visions

CG 論文講読会 2013 / 2 / 12

Ryo Suzuki

i3D 2012

高品質なリアルタイム motion bluer filter

Color, depth, screen-space velocity buffer を

使う2D ポストプロセス

オフラインでの 2D 画像の確率論的再構築

(stochastic reconstruction) を応用

2

本物のカメラは露光時間に入った光をすべて合成

動く物体は screen-space の速度ベクトルに沿って

にじむ

3

カメラが高速に移動する物体を追跡するとき、そ

のオブジェクトは鮮明なままで、それ以外のシー

ンにブラーがかかる

動きは画像平面上で計測され、観測者自身の動き

や方向と相関的

4

(余談)ブラーの目安 [Vlachos 2008]

フルフレームシャッターの 15% の露光時間

― 60fps なら 1/60*0.15 sec

最大の速度をスクリーン幅の 4 % に抑える

今回の論文では結果を強調するために50%の露光時間

5

妥当性のあるポストプロセス (real-time)

スマートな再構築 (offline)

6

モーションブラーのような現象を再現する

露光部分を補う情報が欠如しているため理想

的な品質ではないがリアルタイムで実行可能

7

露光中のシーンを再現する複数のフレームをレンダリン

グし平均をとる

理想的な結果を生成するが、フレームを何度もレンダリ

ングするためコストが大きい

8

動く物体にブラーのかかったテクスチャをマップする

シルエットが鮮明で、テクスチャのつなぎ目が目立つ

「MotoGP 2」や「Split Second」など

9

動く物体を大きく描画し、その中でシェーディングやテ

クスチャをぼかす

深度ソートが必要で、凸状のジオメトリにしか適用でき

ない

10

オブジェクトを異なるバッファに描画し、速度ごとにブ

ラーをかけ、深度に応じて合成

自己遮蔽が少なく、深度が単純なシーンで有効

「Need for Speed 2」や「MotoGP ’07」など

11

Velocity buffer に沿って per-pixel blur をかける

シルエットが鮮明

オブジェクトの背景がぼやける

オブジェクトのサイズが縮む

斜めのサーフェイスに十分ブラーがかけられない

12

メッシュに縮退ポリゴンを仕込み velocity をレンダリ

ングする際に物体を大きくする

境界を柔らかくできるが、背景に過剰な blur がかかる

パーティクルやアルファで切り抜かれたオブジェクトに

は適用できない

13

深度を持つ不透明な線分を低解像度のバッファにレンダ

リングし、velocity buffer を拡大

アーティファクトは velocity 膨張と似ている

「ロストプラネット2」

14 http://www.4gamer.net/games/039/G003901/20070809235901/

Velocity buffer にガウシアンフィルタをかける

Velocity 膨張の欠点をある程度回避できる

モーション中に、オブジェクトの周辺に「見えない」

バッファが存在するように見える

「Unreal Engine 3」など

15

物理的に正しいシーンを再構築しようとする

フィルタ自体は高速だが、入力としてレイト

レーシングやマイクロポリゴンのような

高密度かつ確率論的サンプルが必要

16

単純にピクセルのサンプルを平均

固定された狭いカーネルで畳み込み

17

空間上の画像処理でサンプルの異方性を推定

古典手法に比べ、低密度のサンプルに対して

も高品質な画像を生成

数秒から数分かかる

18

サンプル密度が増えるほど物理的に正しい結果に収束

ピクセルから十分離れたサンプルを考慮する

Static / motion , foreground / background という軸に従ってサン

プルを分類

19

Shirly’s reconstruction からアイデアをもらう

ピクセルが十分遠くのサンプルに寄与する

膨張した velocity をヒューリスティックとして使う

パラメータ k : モーションブラーの最大半径

パラメータ S : サンプリング数

20

Input

V : 各点の移動量を符号化 (GL_RG8)

C : 瞬間のカラー画像 (GL_RGB16F)

Z : camera space のリニアな深度 (GL_R16D)

21

Intermediate buffer & Output

TileMax : 各タイルで支配的な速度ベクトルを保存 (GL_RG8)

NeighborMax : TileMax の近傍を含めたタイルで支配的な速度ベク

トルを保存 (GL_RG8)

Result : 最終画像 (RGB_RGB16F)

22

23

X’ : 前フレームの screen space position

X : 現在のフレームの screen space position

タイル内の最大の V[X] を保存

24

近接する TileMaxタイルの最大の velocity を保存

vmax は x, yそれぞれの要素の最大値ではなく、最も大

きいベクトルを返す

25

Velocity map が膨張する

26

Reconstruction filter をフル解像度で適用

実装はこれだけ!

27

S

S

28

29

30

31

全ピクセルに blur @1280x720

GeForce 480 : 6.2ms (k=31)

GeForce 480 : 2.7ms (k=5)

Xbox360 : 1.5ms (k=5)

32

カラーや深度と関係なく velocity map にレンダリング

爆発、大声、熱、モザイク等のエフェクトに容易に応用可能

過剰な blur でスピード感を生み出す

33

任意の画像のポストプロセスへの応用

C は写真、アーティストが D と V をペイント

リアルタイムな motion blur ブラシとして使える

34

露光時間中のライティングはある瞬間のもの

に固定(どのモーションブラー手法にも共通

の欠点)

35

タイル内の

速度ベクトルの干渉

ブロックノイズ

36

線形の velocity を仮定している

大きな非線形のモーションを低

フレームレートでレンダリング

すると品質低下

37

http://ameblo.jp/4rusmasako/day-20130113.html

支配的速度ベクトルの侵入を解決

2番目に支配的な速度ベクトルも保存?

Defocus との組み合わせ

Defocus の前? 後? 同時に? 手法は?

38

― ご清聴ありがとうございました

39