No More Retake

3DCG屋さん向けTips&Referenceサイト

メニュー

Houdini:Point Cloud Meassure(SOP)

Houdini20.5で追加されたPoint Cloud Meassure(SOP)ノードについて。

このノードはポイント群をもとに様々なデータを計測できるノード。
↓はこのノードの活用例で、SideFX公式ページにあるのを真似してみた。

馴染みのないパラメータもいくつかあったので調べてみた。

パラメータ”Measurements”で、計測できる項目が選べるようになっている。
以下は、各計測項目。

Curvature

曲率(0~1)。どれくらい曲がっているかの値。主にサーフェイスやカーブに対して用いる。

中身の詰まった点群に対しては、正確に曲率を計測できないが、ノードの2番目の入力に計測用のポイントを接続することで計測できる。

Linear Propotion

直線率(1D)。どれ程まっすぐかを表した値(0~1)
検証用に、Line, Line(ノイズ),Box, Sphereを用意し、Scatterでポイントを散らしたものにPoint Measure SOPを適用した。
図はLinear Propotionを可視化したもの。

ひだりのLineふたつは見事にまっ赤。
Line(ノイズ)は強く折れ曲がっている箇所に赤以外の色が見える。
Boxはエッジ部分に明るい色が集まっており、そこが直線っぽいことがなんとなく分かりそう。
ただしBox,Sphere両方とも全面にノイズがかった感じになっているので、やはりラインを検出するために用いるのが良さそう。

Planar Proportion

平面率(2D)。どれだけ平面かの値(0~1)。
検証用に左から、Line、Grid、Box、Sphereを用意し、Scatterでポイントを散らしたものにPoint Measure SOPを適用した。
図はPlanar Propotionを可視化したもの。

Line以外は暖色系が強く出ている。
Boxはエッジ部分が寒色系で、平面ではないことが分かる。
興味深いのはGrid。これはポイントの並びを縦横きれいに整列させたものですが内部が平面部分の暖色系、外側部分が少し寒色系が混じっている。

Sphericial Proportion

Spherical(3D)度合。どれだけ立体的かの値(0~1)
例によって検証用のプリミティブ達でSpherical Propotionを可視化。
LineやGridは単色の青で、BoxやSphereは中身の点群があるので、色が反応している。
Boxのエッジが寒色系なのは、内部よりは3D度合がさがるためか。

もうひとつ検証用に、下図のようなものを作って確認してみた。

やはり平面に近づくにつれてSpherical度は下がり、中身が詰まっている(3D構造)なほど値は高くなる。

Linear Density

ライン(1D)の密度

Area Density

平面(2D)の密度

Volume Density

立体(3D)の密度

Principal Component

上記パラメータとは少し毛色の違うパラメータがこの中にある、Eigen ValuesとEigen Vectors。

Eigen Valuesは固有値、Eigen Vectorsは固有ベクトル。
マニュアル読んでも分かりにくかったので、私の理解で書いてみる。

Eigen Vectors

順番が前後するが、先にEigen Vecotorsから。
これはポイントの分布によって一意に決まる固有のベクトル。この固有ベクトルは3つの互いに直行するベクトルで構成されており3×3のマトリクス値で出力される。各ベクトルは点群分布を近似する楕円体の「長さ」「幅」「高さ」に対応し、それぞれの方向を表しているらしい。私はちょっとイメージできなかったが、そうらしい。
ともかく「Eigen Vecorは、ポイント分布で決まる固有ベクトル」という認識で必要十分だろう。

ちなみにEigen Vectorというと馴染みは薄いが、copyなどで使うアトリビュートtransformと同じようなものと思えば少し理解しやすい。
https://www.sidefx.com/ja/docs/houdini/copy/instanceattrs

3つのベクトルで構成されているので、Visualizeすると下図のように3つの直行するベクトルで表示される。

ポイントの分布によって決まるので、ジオメトリ表面にあるポイントはベクトルの向きが定まりやすい。
ともすれば法線Nのようにも扱えると感じた。

それを利用して、作ったのがサムネイルのヤツ。
特に刺さった矢。

カピバラの体表近くのポイントを選んで、Eigen Vecorで作ったアトリビュートを元に、矢のオブジェクトをCopy to Pointすると、刺さった感じに配置できる。
内部の歯車の向きもEigen Vecorで決めているが、向きに意図はなくポイントの分布からこうなったというだけ。あと歯車も互いにかみ合ってはない。それっぽく見えるように調整しただけ。

Eigen Value

Eigen Vectorの大きさを表す値。3ベクトル分出力される。

この作例のように点群から法線ベクトルっぽいものを作成するだけならPoint Cloud Normal SOPでも可能だが、Eigen Vecorの方が3x3Matrixの分、厳密性も強制力も高い。出力されるアトリビュートがvectorかMatrixかの違いがあるので、そのあたりで使い分けるのが良いのだろうか。

以上、Houdini20.5で追加されたPoint Cloud Measure SOPを調べてみた、でした。


ひたすら実践!Houdiniエフェクト発売中です。


Amazonページはこちら。
本の内容についてはこちら。

関連記事

コメントをお待ちしております

このサイトについて

3DCG Tipsサイト。Houdiniの記事が多めです。

RSS

follow us in feedly

Archives

  • 2024 (5)
  • 2023 (2)
  • 2022 (9)
  • 2021 (14)
  • 2020 (46)
  • 2019 (17)
  • 2018 (33)
  • 2017 (29)
  • 2016 (36)
  • 2015 (64)
  • 2014 (54)
  • 2013 (60)
  • 2012 (55)

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

スポンサードリンク

言語切り替え

  • English (United States)
  • 日本語

Houdiniを使えるようになる本