サイト内検索
メインメニュー
クイックリンク
Blender本体、作品、文書等
BlenderFoundation
- Blenderのダウンロード
- 公式ギャラリー
- 公式チュート等
- 公式動画チュートリアル
- 公式 Wiki マニュアル
- 公式スクリプトカタログ
- Durian プロジェクト

日本語化・翻訳サイト
日本語化の設定など
ドキュメント翻訳プロジェクト(JBDP)
Python API Reference 日本語版

日本語初心者用チュートなど
WBS+

よくある質問と答え
BlenderFAQ

日本語コミュニティ
Blender@2ch
Studio MOMO(総合)
GameBlender Wiki
BLUG.JP
(BLender User Group of JAPAN)


ニュース(英文)
BlenderNation

Blenderコミュニティ
blenderartists.org
- フォーラム
- 記事検索
- New feature tests
- Model Repository

ギャラリーサイト
Blender ARt Gallery

開発サイト
Blender Project Site
- BugTracker
- BugTracker2.5用
- PatchTracker
Blender Wiki
開発情報
SVNコミットログ
SVNコミット速報

非公式テストビルド
Graphicall.org

GameBlender
公式マニュアル
専用API
BugTracker(専用)
Bullet 物理演算ライブラリ
Blender-Games.com

YafRay
YafRay
YafRay-TALK-JPN
YafRayFAQ

LuxRender
LuxRender私家版資料

Scripts & Plugins
Python2.6.4

(2.44-2.48は下記を使用)
Python2.5.2
(2.43-2.40は下記を使用)
Python2.4.2
(2.37a以前などは下記を使用)
Python2.3.5
Python Japan User's Group
BlenderArtists::python & plugins
Blender Plugin Repository
awalker's(?)page
L-sysytem(Blender Dungeon)

チュートリアルなど
Blender Cookie Blenderで3DCG制作日記 BlenderVideos.com Blender 3D: Noob to Pro
blenderguru
IngieBee's Blender site
Michael's Blender Website!

モデル&マテリアル
Blender Model Repository
Kator Legaz 3D Model
Blend Swap

マテリアル
blender-materials.org
Blender機能別: Blender2.42 ベクターブラー  
執筆者: yamyam
発行日付: 2006/8/20
閲覧数: 2634
サイズは 12.08 KB
印刷用ページ 友達に教える
 
元記事:blender.org -- Vector Blur


ベクターブラー(Vector Blur)


by Ton Roosendaal


レンダーパイプライン再構築の結果の一つとして、ポストプロセスのエフェクトであるモーションブラー用に、モーションベクトルを元に、ピクセルの計算やレンダリング、格納、処理ができるようになりました。

ベクターブラーを作成する最も判りやすいアプローチは、それぞれのピクセルに、方向のある形状のフィルタカーネルを新しい画像に蓄積することです。当初のこの方法によるテストでは、あまり満足のいく結果が得られない事が証明されました。そのため、私は頭にあった別の物を実装しました。これは、私が知っている限りでは全く新しい、もしくはまだ論文になっていない物だと思います。


サンプル


エレファンツドリームより

プラグ 踊るプルーグ

スイッチを押すプルーグ。背景にも注目 超殴るプルーグ。父さんにも殴(略


新しいアプローチ


簡単にいうと、画像全体のすべてのピクセルを、ピクセル毎の深度情報も含め四角形ポリゴンによる3Dモデルへと変換します。その後、これらのポリゴン内の頂点毎に、スピードベクトルを増加的に適用することにより、非常に効果的にモーションを再構築できます。ステップ数X回のレンダリングと累積により、画像をモーションブラーのようにきっちり構築できます。





アニメーションしている3Dシーン
 

そのレンダリングされた画像
 

Z 深度情報





ピクセル毎に四角ポリゴンで作成された3Dシーン。それぞれのポリゴンはそのZ深度にそった位置にあります。
 

それぞれの四角形はそのスピードベクトルにそって移動、累積されます。
 

ベクターブラーの最終結果



下記に、Blender のベクターブラーによって生じるステップの詳細を説明します。

プリプロセス(前処理)
レンダリングジオメトリが作成される前に、プリプロセスで、前フレームから次フレームへのスピードベクトルと、すべての Vertex が計算されます。スピードベクトルはスクリーンに平行で、ピクセル数で表現されています。結果は4つの浮動少数点数値で、以前の位置の(X,Y)と、次の位置の(X,Y)です。

これらの値がスクリーン上の投射を元にしているので、大きい(可視の)Face がその Camera の前半分と後半分に存在するのをふせぐため、比較的小さい Face を使用することが重要です。
(注:このプリプロセスを行うため、RenderLayer の "Vec" Pass を ON にする必要があります)

レンダリング
Vertex Normal が Face 内で補間される量を決定するのと似た方法で、スピードベクトルがピクセルサンプル毎に計算され、ベクトルパスバッファ内に累積されます。
このバッファは最大スピードで初期化され、元の値より低いスピードの値でのみフィル可能になっており、ピクセルが速すぎるスピードの所為でアンチエリアスされるのを防ぎます。

半透明(Ztransp) の Face は、Blender 内部では別にレンダリングされ、スピードベクトルが生成された時に、異なった扱いをされます。ここでは Alpha 値も同様に考慮され、ある半透明の Face の Alpha 値が指定された閾値(現在は0.95)より大きい場合、スピードをそのバッファにコピーし、そうでなければ最小スピードで埋めます。

Compositor
レンダリング後、"Vector Blur" ノードを Compositor に追加し、RenderResult の Z と Vec(Speed)Pass Output をこのノードにリンクしなければなりません。その後、Compositor はベクターブラー機能を呼び出します。

3Dモデルへの変換
その後、画像のすべてのピクセルが四角形ポリゴンへ変換されます。この四角形の Vertex にはそのピクセルの Z の平均と、(Face の 4すみの)スピードベクトルの平均を、「最小非ゼロ」スピードルールで格納します。
この最小スピードルールは隣接しているピクセルの複数の Face が違う方向に動いているときに「ティアリング」でバラバラになるのを防ぐのに非常に上手く作用し、さらに動かないピクセルから動くピクセルが綺麗に離れていくようになります。

この段階は、画像の端のスピードベクトルを、すべての端の Vertex の X もしくは Y スピード成分を0にすることで補正して終わります。

マスキング
これは最も重要な段階です。それは、動かない部分を動く部分から分離する必要があるからです。背景をぼかさない状態のままにしなければならないという理由だけでなく、私たちは与えたモーションの「軌跡」から、背景のアンチエリアスされたピクセルの排除もしたいからです。

これは「タグバッファ」を使用することで行われ、ここで四角形に動くか動かないかのタグがつけられます。ユーザはまた、Vector Blur ノードの MinSpeed の閾値を手動で設定することもでき、カメラの移動などをうまく処理するのに使用できます。
この時のこのタグバッファは、実際の「マスク」であり、動く物(白)と、動かない物(黒)の白黒画像のようなものになります。

このタグバッファはその後、過去にビットマップのアンチエリアスに使用していた方法(まだコード内にあります。imbuf の antialias.c をチェックしてみて下さい!)を元にした、Alpha値を四角形に適用するアンチエリアスルーチンを通ります。その結果、私たちはマスクを良質のアンチエリアスと共に適用できるのです。

累積
累積処理は、「サンプル」ステップ数分、スピードベクトルと増加する要素との乗算を実行します。サンプル毎に、過去と未来のベクトルの両方を累積していきます。

各サンプル毎に、下記の処理が行われます。
- タグバッファを、コピーされた移動しないピクセルのZ値でZバッファを初期化するのに使用されます(このため、移動部分をこの後ろに移動できます)。
- 一時的な描画バッファが作成・クリアされます。
- Z値で見えない部分を効果的にマスクし、タグバッファをこの一時バッファのすべての四角形を描画するのに使用します。
- その後、サンプルステップ(ウェイト値の減算)と、四角形の Alpha (タグバッファのアンチエリアス)を元に、この一時バッファがオリジナル画像の上に累積されます。


ベクターブラーの使用


1) RenderLayer に "Z" Pass が設定され、"Vec" が適用されていることを確認。

2) Compositor(このページを参照)に、VectorBlur ノードを追加し、Image、Z、Vector ソケットをつなぐ。

3) VectorBlur の Output ソケットが Composite ノードにつながっていることを確認。

4) レンダリング!



ボタン
- Samples: ベクターブラーで使用されるステップ数。ステップ数を多くすると、よりぼけた結果が得られます。
- MinSpeed: (フレーム毎のピクセル数で表現)これを小さい値に設定することで強制的に、非移動部分から移動部分を分離し、効率的な「マスキング」を行います。特にカメラの移動や、背景がゆっくり移動しているような場合に便利です。また、ブラーを行う画像の一貫性を確実に保つため、すべてのモーションベクトルをこの値で減らします。
- MaxSpeed: ブラーの最大ピクセル長で、極端に速く動く Object がうまくぼけるようにします。0で最大数はなしです。
- BlurFac: 「シャッタースピード」をコントロールします。実際にはスピードベクトルの大きさ要素として働きます。

Tips
- ベクターブラーは(投影された)スクリーン座標を使用しているため、ある平面の半分がカメラの後ろにあり、もう半分が前にあるとき、そのベクトルはおかしくなります。巨大な平面(床や天井など)は少し分割してやる必要があることを覚えておいて下さい。

- 最良のベクターブラーを得るには、速く動く部分を静止(もしくはゆっくり移動している)部分から分離しましょう。そして、二つの RenderLayer を使用し、それらに別々にベクターブラーをかけます。



テストファイル(235KB)

(Driven Hand .blend。Robert Ives氏作)



Last update: Jul 14 2006.
This section is maintained by Ton Roosendaal.


元記事:blender.org -- Vector Blur
 
評価された記事: 0.00 (0 件の投票)
このファイルの評価
カテゴリに戻る | カテゴリの一覧に戻る
ログイン
ユーザID または e-mail:

パスワード:



パスワード紛失
新着リンク
関連文書の新着

各コンテンツは特に記述がない限り、投稿者に著作権があります。投稿者の記載されていないものは管理者により作成。 
(C)2004-2010 blender.jp All Rights Reserved.  
Designed by yamyam. inspired from OCEAN-NET  
Special Thanks to kyk.:) Powered by XOOPS