« ヘッドホン(3) | メイン | 屈折率 »

2005年03月12日

HyperNURBSのこまかい話 [ CINEMA 4D R9 ]

 ヘッドホン作ってて気がついたHyperNURBS(以下HNと略)のこまかいことについて。

(1)HNウェイトはビューに表示できる

050312_HN_1.gif

 我ながらマヌケな話だけど、こないだ気付いて非常にびっくりした。HNウェイトタグを選択かつHNオフまたは表示分割0でないとこの表示にならないので、知らずにいじってたらなかなか気付かないよねえ。なんかマニュアルに書いてないような気がするんですが。HNウェイトタグでHNの分割数を変えられるのとかも書いてないような。

(2)カットマル・クラーク(N-Gons)の省略表示(ISOライン)

 ビューのワイヤーフレーム表示を「省略表示(Isoperms)」にしてるのに、表示される線が分割されてる。

050312_HN_2.gif

 別に害はないんだけどなんか気になるのであちこちいじくってようやくわかった。R9.1でHNのオプションがちょっと変わって、分割のタイプが三種類から選べるようになったんだけど、そのうちR9.1で新登場かつデフォルトになった「カットマル・クラーク(N-Gons)」だと、省略表示が一段分割される。

050312_HN_3.gif

 属性でタイプをN-Gonsじゃないやつに変えると、

050312_HN_4.gif

 おなじみの、元ポリゴンのエッジと同じ密度の省略表示になる。

 ところが「カットマル・クラーク(N-Gons)」だからといって常に省略表示が分割されるわけでもなくて、そのポリゴンオブジェクトに実際にN-Gonが存在してなければ分割されない。

 たとえばこのポリゴン。

050312_HN_5.gif

 選択されてる部分はN-Gonでフタをしてあるんだけど、「カットマル・クラーク(N-Gons)」ではN-Gon線(暗い青色、N-Gonをふさぐために内部的に分割しているポリゴンの線)とHNの分割が違っていて、元のポリゴンでポイントがないところからISOラインが出ている。

 で、このフタしてるN-Gonを削除すると、

050312_HN_6.gif

 途端に省略表示が分割されなくなる。なにやら不可解な仕様なんだけど、よく見るとそれなりに合理性があるようだ。

(3)「カットマル・クラーク(N-Gons)」の正体

 「カットマル・クラーク(N-Gons)」の分割方法はN-Gonに最適なフタをするために、(1)元のポリゴンを一段階分割(2)N-Gon部分を最適な四角ポリゴンに再構成(3)分割数が高ければそこからさらに細分化していく、という方法を採っているらしい。

050312_HN_9.gif

 上図、「カットマル・クラーク」の場合、元のポリゴンが持っている頂点を元にN-Gon線で表示されているとおりに分割している。

 いっぽう、「カットマル・クラーク(N-Gons)」の場合、N-Gon線と違う分割をする。

050312_HN_8.gif

 どうやらN-Gon部分を放射状に割るようになってるらしい。元のポリゴンが持ってるポイントそのものではなく、一段階分割された後のポイントを使わないとこういう分割にできないので、省略表示でも一段階分割しないとワイヤーフレームが描けないということになる。

 上図の例だと、エッジにウェイトがかかっててN-Gon部分が平面になっちゃってるので、レンダリング結果はどっちだって同じなのだが、曲面になると結果が変わってくる。僕は非平面のN-Gonは使わないようにしてたのだが(内部的にどう分割されるかわからなくて危険なので)、「カットマル・クラーク(N-Gons)」を使えばある程度は曲面部分でもN-Gonオッケーらしい。

 上図の六角形のフタの部分、「カットマル・クラーク」ではN-Gonの分割が「(1)三角・四角・三角に分割(2)さらに二段階分割」となっているため、分割に偏りが生じ、三角の部分が少し尖ってしまっている。いっぽう「カットマル・クラーク(N-Gons)」では「(1)放射状に6個の四角ポリゴンに分割して(2)さらに一段分割」となっているので、分割に偏りがなくきれいな曲面になっている。もちろんHNを適用する前に手作業でN-Gonを上手く分割しておくというような従来の職人的対応もできるが、「カットマル・クラーク(N-Gons)」のほうがラクチンだ。

(4)やっぱりSketch and Toonはちょっと微妙

 R9.0の時点からSketch and Toonでエッジの線を描かせるとN-Gon線まで描いてしまったりしてたのだが、ISOラインでも似たようなことになっている。上記のように「カットマル・クラーク(N-Gons)」でISOラインが分割表示される状態だと、Sketch and ToonでもISOラインが分割されてしまう。

 まあSketch and Toonでレンダリングする直前にHNを全部「カットマル・クラーク」にしちゃえばいいんだけど(選択メニュー>選択フィルタ>選択ツールでシーンにあるHNを全部選択できるので、属性マネージャから一発で変更できる)、こういうユーザーが気付かずにはまってしまう落とし穴みたいな仕様はなるべく埋めておいたほうが親切なんじゃないかなあとか思ったりするよね。

投稿者 ヒロツ : 2005年03月12日 20:28

トラックバック

このエントリーのトラックバックURL:
http://kowloo.net/hirotsu/mt/mt-tb.cgi/106

コメント

うわ、知らなかった>ウェイト表示
N-gonのサブデビは9.1までは内部で勝手に四角ポリゴン以下に分割した後、サブデビをかけただけだったんでちょっと不満だったんですが、これで「フタを閉じる」ががんがん使えますね。
ちょっと前とは比べ物にならないくらい楽になってるなあ。

投稿者 kurosawa : 2005年03月13日 00:31

やっぱ気がつかないよね。>ウェイト表示

カットマルN-Gonsはコの字とか穴あきだとHNが崩れるそうですが、さすがにそういうN-GonにはHNかけないし。

最近気付いてびっくりしたっていえば、軸の表示のオンオフにショートカットがあったこと(alt+D)。
ツールメニューにバッチリ書いてました。なんでいままで気付かなかったんだろ(笑)
スプライン描くときとか特に軸が邪魔なんですぐ消せるとすごく便利。

投稿者 ヒロツ : 2005年03月13日 13:04

コメントしてください




保存しますか?


※URLが多数含まれているとコメントスパムとみなされることがあります
※投稿後すぐにコメントが反映されない場合はリロードしてみてください