日々適当

hibitekitou

Extrude Polygon Island

xsi |2013-03-18


この図のような物をポリゴンごとにポリゴンの法線方向に押し出して、押し出しつつスケーリングしたい時。ICEには Extrude Polygon Island ってノードが存在します。
押し出したいポリゴンのインデックスを与えるわけですけど、問題は、押し出し量の指定する値が、トランスフォームであることなんすね。



こんな感じで、行列で指定することになります。だから、SRT to Matrix ノードを使って、移動とスケールを行列に変換して指定してやる事を思いつくわけですが、事はそう簡単ではありません。



このツリーは単純にスケールと移動をインデックス0のポリゴンに対し指定した物ですけど、結果はこんな↓風になります。



まぁ、意図した形じゃないのはすぐに分かると思います。移動はともかく、スケールが問題なんです。スケールの値を指定したとして、そのスケールのセンターはどこって話でしてね。
ってことで、こんな手順で指定してやりました、というやり方です。これであってんのかねぇ?




まずは位置をゼロにしてやります。その上で、




スケールしてやります。あ、図のノードが繋がってない。要するに行列のかけ算をしているわけっすね。
そしたら、位置を元に戻してやります。




んで、押し出したい方向の移動をしてやればよろしい。




いわゆる「変換」の考え方としてはあんまり間違っていないとは思うんですけど、ICE的にこのの考え方はあっているのかな?
コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。