Houdini 18 SOP No.8 “Distance From Geometry SOP”


~“Distance From Geometry SOP” Distance編-2 ~

前回に引き続きHoudini18.0にて新規に追加されたSOPノードの解説を行います。
前回の記事をご覧になられていない方はこちらからご覧ください。

※本記事ではHoudini 18.0.391を使用しています。

 

今回はDistance From Geometry SOPについて解説していきます。

Distance From Geometry SOP

このノードは、Houdini 18.0にアップデートされた際に新しく追加されたノードとなります。
このノードの機能は、第二入力に入力されたジオメトリから各ポイントまでの距離を測定するものとなります。この際に計測する始点はポイントの場合は、ポイントからの距離になります。ポリゴン等の面のあるジオメトリの場合は、そのサーフェスからの距離を計測します。
こちらもサーフェスに沿った距離を測定することにより距離に基づいてマスクを作成する際に役立ちます。

また、このノードでも距離を測る方法が複数あります。
まず、距離を測定する参照オブジェクト内のコンポーネントのタイプです。

これには2種類の設定があります。
 1つ目は、各ポイントから参照ジオメトリ内の一番近くにあるプリミティブまでの距離
 2つ目が、各ポイントから参照ジオメトリ内の一番近くにあるポイントまでの距離
となります。

さらに、プリミティブまでの距離の計測の場合、更に3種類の測定方法があります。
 1つ目が、各ポイントから参照ジオメトリ内の一番近くにあるプリミティブまでの距離
 2つ目が、各ポイントから参照ジオメトリ内の一番近くにあるプリミティブまでの符号付きの距離
  (参照ジオメトリの内側にあるポイントからの距離はマイナスの表記にりま)
 3つ目が、各ポイントから参照ジオメトリ内の一番近くにあるプリミティブまでの符号付きの距離
  (参照ジオメトリの外側にあるポイントからの距離はマイナスの表記になります)

 

では使い方を説明します。

このノードの基本的な設定方法や仕様は、前回に説明した「Distance Along Geometry SOP」(リンク張る)と同じになります。

まずはパラメータを確認します。

パラメータは下の図のようになります。

基本的にパラメータは、Distance Along Geometry SOPと同じになります。
違うポイントは、上の画像の赤く囲われている2つのパラメータににあります。

ここでは、先ほど説明した距離を測る方法の設定が行えます。
 Reference Group Type:距離を測定する対象を選択
             (Primitives、Points)
 Distance Metric:プリミティブからの距離の測定方法の選択
         (距離の絶対値が1種類、符号付きの距離が2種類)
となります。

では詳しく説明していきます。

今回も前回同様下のようなグリッドを用いて説明していきます。

このグリッドは
 Size:10×10
 Rows:30
 Collums:30
となっています。

このグリッドの左上の端に半径0.3のポリゴン形状のスフィアオブジェクトを配置し、そこからの距離計測していきます。

まず初めに、「Reference Group Type」についてです。

こちらが“Primitives”の際の測定の方法となります。

このように各ポイントからサーフェイスまでの最短距離の計測します。

その際のGeometry Spreadsheetは下のようになります。

このような結果を得ることができます。

次に“Points”の際の測定の方法となります。

このように各ポイントから入力されたジオメトリの一番近いポイントまでの最短距離を計測します。

その際のGeometry Spreadsheetは下のようになります。

このような結果を得ることができます。

この2つの測定方法は帰ってくる結果が少し異なります。

2つのGeometry Spreadsheetの“dist”のアトリビュートを比較したものが下になります。

0番目の数値が、異なっているのが分かります。

今回はSphereを用いたため、内側に入っている0番のポイントからの最短距離は“Primitives”の場合は、各面の中心、“Points”では各頂点ポイントまでの距離となります。そのためこのように数値に差が生じています。

今回はSphereを用いたためこのような結果になりましたが、別の形状を用いた場合は、異なった結果を得ることもできます。例としてBoxを用いた場合の結果は下のGeometry Spreadsheetのようになります。

このように、Sphereの場合とは異なり、「Primitive」の場合と「Point」の場合でまったく異なった結果を得ることもできます。

では次に「Distance Metric」についてです。

※「Reference Group Type」が“Primitives”の時しか選択することができません。

こちらは先ほども書きましたが、プリミティブまでの距離の測り方を設定することができます。ここには「Distance from Surface」「Distance Inside Geometry」「Distance Outside Geometry」の3つから選択することができます。これはそれぞれ

 Distance from Surface
  1つ目が、各ポイントから参照ジオメトリ内の一番近くにあるプリミティブまでの距離
 Distance Inside Geometry
  2つ目が、各ポイントから参照ジオメトリ内の一番近くにあるプリミティブまでの符号付きの距離
  (参照ジオメトリの内側にあるポイントからの距離はマイナスの表記になります)
 Distance Outside Geometry
  3つ目が、各ポイントから参照ジオメトリ内の一番近くにあるプリミティブまでの符号付きの距離
  (参照ジオメトリの外側にあるポイントからの距離はマイナスの表記になります)
となります。計測方法は先ほど説明したものと同様ですが、結果が変わります。

下は各3つのType別にGeometry Spreadsheetを比較したものになります。

このような結果になります。

Distance from Surface」では全ての数値がプラスに、「Distance Inside Geometry」では内側にある0番のポイント以外が全てマイナスに、「Distance Outside Geometry」では内側にある0番のポイントのみがマイナスの値になります。

このように結果が変化します。

以上がDistance From Geometry SOPの説明となります。

 

Distance Along Geometry SOPとは測定方法が少し異なりますが、基本的な機能は、ほとんど同じになります。そのため、Distance Along Geometry SOP同様にマスクを作成して距離に応じたポイントの散布、色付け等を行うことも可能です。

前回のDistance Along Geometry SOPの解説をご覧になりたい方はこちらからご参照ください。

 

こちらの記事のhipファイルが以下のURLからダウンロードできますので興味のある方はご確認ください。
https://www.dropbox.com/sh/i840qq3w8twdr6x/AADA-bW8OtOUbaTOdSqA69Zla?dl=0