2018-04-02

Trace Boundary Color


ここでは、 Houdini 16.5.427 から Trace SOP に追加された Boundary Color オプションについて説明する。


使用したビルド: 16.5.427
シーンファイルへのリンクは一番下にあり。

1. 今までの問題点

  1. 例えば、COP で次のような画像シーケンスを作ったとする。
  2. これを Trace SOP に次のように読み込む。
  3. Filters タブの一番下*の Hole Faces をオンにすると、文字の穴の部分にあった面が取り除かれる。
  4. 問題は、文字がフレームよりも大きくなり、輪郭の色が反転する時に、Trace の方向も反転してしまうことにある。
    • 1~9フレーム目
    • 10-11フレーム目
    • 12フレーム目以降 (72フレーム目)
    見てわかるとおり2番目(10-11フレーム)が反転している。これを回避するには、COP で画像の周りに白い枠を追加するなどして、輪郭の色が一定であるようにすることで対応できた。

*: 16.5.426 までは Filters タブの一番下、16.5.427 以降は一番下に以下の新しい Boundary Color が追加されたので、下から2番目。

2. 今回の追加オプション

16.5.427で、Trace SOP にBoundary Color が追加された。今回の例であれば、これを Black と設定すれば、文字の部分に面が作成される。

  • 下は、Boundary Color を Black とした時の11フレーム目。
  • Boundary Color を White にすれば、明示的に反対に設定することが出来る。
  • Boundary Color を "Same as (0,0)" とすれば以前の挙動になる。
Black、White の場合であれば、シーケンスを通じて常に同じように面が作成される。

3. 穴を塞ぐ面を削除する別の方法

Trace SOP への入力データ次第では、上記の方法を使ってもうまくいかない可能性がある。その場合の回避策として以下の方法が考えられる。

  1. Trace SOP の Filters タブにある Hole Faces をオフにする。
  2. Trace SOP の出力に Group ノードを追加。
    • Group Type は Primitives のまま
    • Keep By Normals をオンに
    • Spread Angle を90° にする。
        これで穴の部分の面が group1 としてグループ化される。
  3. Group SOP の出力に TAB->Split ノードを作成。
    • Group に group1 を設定。
    • このノードには二つの出力があることに留意。
  4. TAB->Boolean ノードを作成。
    • Boolean の入力二つに、Split の出力二つを交差せずに接続。
    • Set A、Set B ともに Treat As を Surface に
    • Operation を Subtract にして B-A に設定。

  5. この方法でも、Houdini 16.5.257 以前の場合は特に、うまくいく。

シーンファイル

  • trace_165427.zip 10KB
    • trace_165427.hip: #2 までのファイル
    • trace_boolean.hip: #3 までのファイル

0 件のコメント:

コメントを投稿