パラメトリックUVの可視化

INDEX

はじめに

こんにちは。モノリスソフト テクニカルアーティストの森田です。
HoudiniにはパラメトリックUV(ParametricUV)というものがあります。

primuv関数xyzdist関数でよく使われます。
今回はパラメトリックUVの簡単な解説とその可視化を行ってみます。

簡単な解説

このUVについて詳細は他サイトに多くの情報がありますので譲りますが、簡単に説明すると「プリミティブ(ポリゴン)一枚毎にあらかじめ設定されている編集不可能なUV座標」です。
「ポリゴン表面の座標」を指定するprimuv関数などではこのパラメトリックUVが有用になってきます。

可視化する

サンプルファイル(monolithtech_parametricuv.zip 10.5 KB)はこちらです。

DOWNLOAD

可視化の最終結果はこちら

tech_45_01_05.jpg

ファイルをご覧いただきながら下の解説を読み進めてください。

tech_45_02.jpg

  1. grid1 適当なメッシュを用意

    tech_45_03.jpg

    まず、gridノードです。今回はGridにしていますがSphereでもなんでもかまいません。

  2. enumrate1 順番に番号をつける

    後に使用するためenumrateノードでプリミティブ毎に番号(index)をつけていきます。

    tech_45_04.jpg

  3. wrangleで色付け

    Wrangleノードを作成し、RunOverをvertexにして以下のコードで頂点毎に色をつけることで可視化が完了します。

    xyzdist(0, "@index=" + itoa(@primnum), @P, i@prim, @Cd);
    

    ここでは指定した座標に最も近いメッシュ上の点でのプリミティブ番号とパラメトリックUVを返してくれる「xyzdist関数」を使っています。
    引数を順番に解説すると

    0 で、wrangleの1番インプットに刺さっているものを対象にしています。

    "@index=" + itoa(@primnum) で、プリミティブグループに数式を指定しています。(こちらの記事の「Groupには数式を入力することができます」の部分です。)
    意味としては「index+現在のプリミティブ番号」になります。
    結果としてはプリミティブ毎に@index=0、@index=1、@index=2...となっていきます。

    TIPS:

    RunOverがVertexのWrangleは頂点毎に処理するわけですが、
    ここで@primnumと指定すると今現在処理しているVertexが所属しているプリミティブ番号が返ってきます。

    @P で、今のポイント座標を指定

    i@prim にはプリミティブ番号が返ってきます。(新規作成するアトリビュートです)

    @Cd にはパラメトリックUV座標が返ってきます。(新規作成するアトリビュートです)

    つまり、この一行で「プリミティブグループ(index)が同じ頂点の中で@Pに最も近い(@Pと同義の)プリミティブ番号とパラメトリックUV」が返ってくるという処理です。
    ここで、@CdにUV座標を割り当てたのでRとGに座標値が入っています。

tech_45_01_05.jpg

ここまでの処理で、プリミティブ毎に綺麗にUV座標が設定されているのが可視化できていると思います。

tech_45_06.jpg

ここで仮に、プリミティブ一枚で確認してみますと、以下のようになります。

ポイント番号 パラメトリックU座標
(Rチャンネル)
パラメトリックV座標
(Gチャンネル)
0 0.0 0.0
1 0.0 1.0
2 1.0 0.0
3 1.0 1.0

例えばパラメトリックUV座標(0.5,0.5)とすると、上のプリミティブのちょうど真ん中あたりを指定できます。
パラメトリックUVを用いればポリゴン表面のどの場所でも簡単に指定できることがわかると思います。

まとめ

  • パラメトリックUV=「プリミティブ(ポリゴン)一枚毎にあらかじめ設定されている編集不可能なUV座標」
  • @CdにUV座標を割り当てると可視化できる

参考

Houdiniヘルプ、プリミティブのパラメトリック空間(暗黙的なUV)

Born Digital サポート、primuv()は何ができるのか?

Born Digital サポート、xyzdist()は何ができるのか?

執筆者:森田

映像業界を経てモノリスソフトへ入社。 以来、テクニカルアーティストとして主にHoudini関連の業務を担当。 好きなお寿司は鉄火巻き。

ABOUT

モノリスソフト開発スタッフが日々取り組んでいる技術研究やノウハウをご紹介

RECRUIT採用情報