No More Retake

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

メニュー

Houdini:エッジだけ残す

Houdini回。
ポリゴンプリミティブの面を消して、エッジを残す簡単な方法。
面はいらんのじゃ、線だけほしいのじゃ、って時があったのです。
PolyWire(SOP)とか使いたくないし、かといってWrangleで書くのもなぁ、きっとノードで出来る、と思って調べたらPrimitive(SOP)を使うとそれっぽくなりました。。

忘れたころにPrimitive(SOP)の以外な有用性に気付かされます。

パラメータのFace/Hullタブにある「Close U」を”Open”に変更します。

これでポリゴンが開いて、面がなくなりエッジだけになります。
大抵はこれでイケる、ただし万能ではない!

他に簡単な方法があったら、ぜひ教えて下さい。

 

2017/02/16追記
コメント等でいろいろ教えてもらったので追記。

Primitive(SOP)

設定Unroll。エッジだけ残す目的ならOpenよりこっちがよか。
「Openはなくなっちゃうエッジがあるんだよなぁ、たしかに」、と思ってた。
うん、思ってた!

Ends(SOP)

PrimitiveのFace/Hullタブの機能と同じ。
でも、Ends(SOP)は使ったことなかったなぁ。

Carve

プリミティブからいろいろカットするヤツ。
正直、「これでエッジだけ残るんだ」って思いました。

Convert Line(SOP)

ジオメトリを線にコンバートする。
なまえ、そのまんまじゃ!

Convert Line(SOP)の中身とwrangle

int n[] = neighbours(1, @ptnum);
foreach (int pt; n)
{
    if (pt > @ptnum)
    {
        int pr = addprim(geoself(), 'polyline');
        addvertex(geoself(), pr, @ptnum);
        addvertex(geoself(), pr, pt);
    }
}

日本語に訳すと、
「隣接ポイント探して、それらのポイントと自身との間にpolylineを作る。また、ポイント番号が自分より大きい場合だけに限ることでエッジが重複して作られないようにする」
かな。

自分でwrangle書くの面倒だと思ったのは、エッジの重複にどう対応したらと困りそうだったからなのだけれど、こんな簡単な条件でよかったんだ!、


もうして見ると、いっぱい手法があるものですね。
自分で探してたときは、全然みつからぬっ!、と思ってたのに。

ここで少しだけ注意したいのは、これらの方法で作られるエッジは見た目はほとんど同じだが、データとして明確に異なるということ。
たとえば、Primitive(SOP)のOpenでラインにすると一筆書きっぽい線にしてくれるが、ConvertLine(SOP)はバラバラに分割されたラインである、とかそういうのです。用途に合わせて使い分けよう。
意外と奥が深い。

また次回!

関連記事

  1. Okazaki 2017.02.15 1:13pm

    OpenだとなくなるEdgeがあるんで、ばらばらになっちゃいますが基本Unrollにしてます。

    • 0
    • 0
    • kitagawa 2017.02.15 2:17pm

      Unroll!
      その設定、見えてなかった。マニュアルみたら確かに求めてた機能でした。Openで満足してました。
      Openだとたしかにエッジがなくなっちゃうから、記事に「万能ではない!」って書いてたんですよ。
      そっか、Unrollかぁ。
      勉強になりましたm(_ _)m

      • 0
      • 0
  2. らい 2017.02.15 10:29am

    結局中身は Wrangle ですが Convert Line でもいけますし、
    Primitive と同じですが Ends や Carve でもいけますね!

    • 0
    • 0
    • kitagawa 2017.02.15 11:32am

      そんなにいっぱい方法があったなんて・・・。
      End SOPとか使ったことなかったから初めて知りました。
      てかCarveでもイケるってのはちょっとビックリ!
      先入観ですかね、そもそもラインっぽいの以外にCarveを使おうとしたことなかったです。
      勉強になりました、ありがとうございますm(_ _)m

      • 0
      • 0
  3. koji 2017.02.15 4:39am

    convertlineSOPはどうですか?中身Wrangleですけど。

    • 0
    • 0
    • kitagawa 2017.02.15 11:26am

      Convert Line SOP、なんとドンピシャなものが!
      中身のwrangleも思ったよりずっとシンプルでしたし。
      勉強になりますm(_ _)m

      • 0
      • 0

このサイトについて

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

RSS

follow us in feedly

Archives

  • 2024 (1)
  • 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を使えるようになる本


Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): Failed to enable crypto in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(http://api.facebook.com/restserver.php?method=links.getStats&urls=http%3A%2F%2Fnomoreretake.net%2F2017%2F02%2F15%2Fhoudini_only_edge%2F): failed to open stream: operation failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(): Failed to enable crypto in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132

Warning: file_get_contents(http://api.b.st-hatena.com/entry.count?url=http%3A%2F%2Fnomoreretake.net%2F2017%2F02%2F15%2Fhoudini_only_edge%2F): failed to open stream: operation failed in /usr/home/nomorere/nomoreretake.net/wordpress/wp-content/themes/n1-custom/functions/social.php on line 132