タイトル画像

被写界深度表現

2013.10.06(17:13) 12

 blender で被写界深度表現をするにはノード編集が必要なようです。
ということでコンポジットノード(composite node)を使ってやってみました。

※composite=合成

 コンポジット編集とはその言葉の意味通り、レンダリングした画像にいろいろフィルターなどの効果を加えることです。レタッチと同じですね(*・ω・)

 ここでは二通りのやり方をメモしておこうと思います。
一つは blender の中で処理する方法、もう一つは出力したZバッファを photoshop や GIMP などの他のソフトへ持って行って使う方法です。

[1.blender 内でコンポジット作業]
1.画面の上にあるインフォウィンドウ(画面上部の帯状のメニュー)のスクリーンレイアウトを決めるドロップメニュー(help の右隣にある)で、Compositing を選ぶ。(初期状態では Default になっている)

2.すると画面が切り替わって3つのエリアに分かれるので、今度は画面中央のヘッダで Use Nodes のチェックボックスにチェックを入れる。
 チェックを入れたら上の画面に2つのウィンドウが現れる。これがノードです。
 左のノードがレンダリング結果で、右のノードがコンポジット結果。2つのノード間は概念的なケーブルが繋がっている。
 編集は基本的にこの2つの間に他のノードを挟むことで行われます。
※詳しくは画像をご覧ください。

3.レンダリングします。
 ノード編集時はリアルタイムでプレヴュー機能が働くせいで CPU への負荷が大きくなるので、レンダリングの設定で画像解像度を下げたり SSS(Subsurface Scattering) やアンチエイリアシングなどの本番以外では使わない機能は OFF にしておいた方が良いと思います。(Shading パネルのチェックを外す)

composite_002.png

 フヒヒ、これで準備完了ですね(*・ω・)
 では次にノード編集の操作方法ですが、これはもうほぼオブジェクトモード時の操作と同じです。
・右クリックでノード選択。A で全選択/選択解除。X で削除。
・Shift+A でノード追加。Shift+D でノード複製。
・ホイールスクロールで視野の拡大縮小。 ・ホイールドラッグで視野移動。

・ちなみに G S R キーも一応ヘッダが反応するが G の移動コマンド意外は無効になっている(まあ、拡大縮小/回転をする意味がないし当たり前かw)。

 操作方法も確認したところで次は実際にノードを組んでみます。

とりあえず画像(*・ω・)つcomposite_003.png

[手順]
1.レンダリングの設定で編集に関係ない要素を全部切ります(プロパティズウィンドウの Render 項目)。
 そしてついでにノードエディタウインドウ(画面を大きく3つに分けたときの左上のエリア)のメニューの Performance パネルで Render と Edit を“Low”に、OpenCL と Two Pass にチェックを入れておきます。
これをしておくことでプレヴューの負荷をかなり軽減できます。

2.さて準備も整ったので Shift+A を押してノード追加メニューを出してください。
 Filter>Defocus

3.新たに作成した Defocus ノードを、Render Layers と Composite の間に挟みます。
 すると勝手に配線が繋がるので画像のようになると思います。

4.数値を設定していきますがここでちょっと作業が分岐します。
 Zバッファを使わないお手軽な方法(A)とZバッファを使う方法(B)です。

[A]Zバッファを使わない方法。「画面の奥に行くほどぼやける」を設定します。
 UV/Image Editer (左下のウィンドウ)の画像を見ながら Max Blur の値を程よくぼける値にしてください。おわり

 ほんとにそれだけです(・_・;)
 ちなみに Bokeh Type はレンズの絞りの形状で○△□と5角形~8角形が選べます。
 (ボケって英語だったんですね……←)
 Preview にチェックを入れると品質が落ちるそうです。本番では外しましょう。

[B]Zバッファを使う方法。「焦点を設定してその前後をぼかす」方法です。
1.まず[A]と同じノードを組みます。

2.Defocus ノードの Use Z-Buffer にチェックを入れます。
 このとき下の Z-Scale の値が設定できなくなるので、一時的にコンポジット結果のボケが消えてしまいますが気にしてはいけません。

3.オブジェクトモードでカメラを選択し、プロパティズウィンドウでオブジェクトデータ(選択したオブジェクトのアイコンが表示されるとこ)の項目を開きます。
 Depth of Field パネルで焦点を指定します。Distance の数値を入力してほど良いところを探ってください。

※Focus のドロップダウンメニューから、焦点を合わせるオブジェクトを選ぶこともできます。

4.Defocus ノードの fStop の値を下げるとボケが強くなります。ここでぼかし具合を調整してください。
 これで完成です。焦点の手前もボケていることを確認してください。

 参考画像composite_004.png

[A+B]Zバッファを使わず、ノードだけで「任意のオブジェクトの前後をぼかす」方法。(疑似被写界深度)
1.まず画像のようにノードを組みます。
 composite_005.png

 ・アルゴリズムは次の通りです。
 1:Render Layers (レンダリング結果)からZ値を抜き出し、
 2:Map Value (マップの値)として、
 3:Color Ramp (色の傾斜)で有効範囲を指定して、
 4:それを元にレンダリング結果に Blur (ブラー)を掛けて、
 5:Composite (合成)結果として出力せよ。

 基本的に左から右に向かって処理しているんですね(*・u・)

2.数値を設定していきます。
 各ノードごとに説明していきます。
 [Map Value]
  適当です← というのもシーンによって最適な値がかなり変わってくるのでそうなります;
  Viewer の画面が真っ白にも真っ黒にもならないところを探ってください。(※)
 [Color Ramp]
  Add を押して白いところを増やしてください。
  計算式は Liner にしておくのが妥当かとは思いますが、ここでは Ease を使いました。
  (黒い部分の幅がほしかったので)(※)
 [Blur]
  計算式は Fast Gaussian が一番早くきれいな仕上がりに見えました。
  Relative にチェックを入れ、X と Y にぼかしたい値を入力して完成です。

 ※blender に高負荷が掛かります。PCスペックによっては少し待ちながら操作しないとフリーズするので気を付けてください。


[2.外部ソフトでコンポジット作業]
 ここではコンポジットノードを使用してZバッファを抽出するところまでを書きます。
 実際にコンポジット(レタッチ)を行う作業は別の記事で詳しく記していこうと思います。

[手順]
1.例によって画像のようにノードを組みます。
 composite_006.png

2.解像度を確認してレンダリングし、保存します。おしまい(*・p・)

※ちなみに“Zバッファを使わず、ノードだけで「任意のオブジェクトの前後をぼかす」方法”と途中までが一緒なので、blender のフリーズには十分ご注意ください。


★その他ノードの操作
 ▼:ノードの折り畳み/開示 (ショートカット:H)
 ○:プレヴューの非表示/表示

 E:コンポジット実行
 R:レンダーレイヤーの保存
 Shift+R:レンダーレイヤーをフルサンプルで保存する

 Ctrl+G:ノードを複数選択して行うと、ノードがグループ化される。
 (Tab:グループ化したノードを開く(3D View のエディットモードと同じ要領))
 Alt+G:グループ解除



[参考文献]
Blenderノードエディタ(コンポジットノード)
Blenderでレンダリング(被写界深度)
ノードエディター 人物(女性)/コンポジットノードでZ深度抽出
関連記事
スポンサーサイト

超エキサイティン! フンストンの3DCG至難の書


<<レタッチ [食べ物編] | ホームへ | 環境マップ(environment Map)>>
コメント
コメントの投稿













管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://funstone.blog.fc2.com/tb.php/12-0bafe53b
この記事にトラックバックする(FC2ブログユーザー)