« △。 | トップページ | 俺の Next Keyframe 2。 »

2013年10月26日 (土)

頂点N個おきに発生。

ポリゴンの頂点上にパーティクルを発生、ってのはよくやるわけですが、頂点全部に発生させたいわけじゃなくて、N個おきに発生させたかったりするわけですよ。


で、相変わらず ICE たんに愛されていない俺には、当てずっぽうで Modulo とかいじくって、さっぱり思った通りにならず、おとなりさんの家の庭に俺のモニタが堆積して行くわけです。数十万年後に EIZO 遺跡として発掘されることでしょう。


で、ひとりではどーにもならなくて教えを乞うと、親切に俺に知恵を授けてくれる賢者様たちがいるわけです。 俺は幸せ者です。 その幸せをおすそ分けします。


Addpointoneverynthvertex

クリックするとでかい画像が出ます。


うん、これで良い。スヴァらしい。




冗長だけどロジックをコトバで説明すると以下のようになると思います。



発生源としてポリゴングリッドがあります。

そのグリッドの PointPositon つまり頂点位置を Add Point に食わせてやって、頂点を発生させます。

しかしこのままでは全部の頂点に発生しやがります。 任意の個数おきに発生させたいのです。

そこでまず、グリッドの頂点番号を取得します。 VertexIndex です。

そいつを Modulo に食わせ、2個おき にするなら  を食わせます。 Modulo は、頂点番号それぞれを2で割ってその余りを吐き出します。

余りがゼロの時は、2で割り切れている時ということになります。 ってことは、頂点番号が2の倍数の時に割り切れることになります。

その結果を Filter に食わせます。 Filter は条件が一致した時のみ Keep します。 この場合、頂点番号が2で割り切れた時のみ(2の倍数の時のみ)、Keep つまり保持して次のノードに渡すわけです。

こうして2個おきにキープされた頂点番号の頂点位置に Add Point でパーティクルが出現します。

3個おきにしたかったら、Modulo に 3 を食わせます。 3の倍数の時のみ Keep され、パーティクルが出現します。

めでたいです。

男が白い歯を輝かせて笑います。




説明、これで合ってますか? 間違ってたら指摘して下さいね。




このシーンファイルのダウンロード JJJ_ICE_AddPointOnEveryNthPoints.zip (XSI 2012)






m4g さん、msk さん、いつもありがとう。 あなた達のおかげで仕事ができてます。





.

|

« △。 | トップページ | 俺の Next Keyframe 2。 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 頂点N個おきに発生。:

« △。 | トップページ | 俺の Next Keyframe 2。 »