2011年1月12日水曜日

KRAKATOA control density or color by particle age

【KRAKATOA】 密度(透明度)とカラーをパーティクルの年齢(age)で制御する

1.KRAKATOAパーティクルをディスクキャッシュする(作業を安定させるためで必須ではない)
キャッシュしない場合については備考を参照
キャッシュ項目は















2.CreateでPRTLoaderを作成し、キャッシュデータを読み込む。
この時点でPFなどはOFFにしておく。

3.KCM(Krakatoa Channel Modifierたぶん…)をモディファイアとして追加する。
設定をDensityに。











4.MagmaFlowEditorを開いて、
channel age と lifespan を追加。
それぞれ toFloat を経由して、
divide に繋ぐ。上に age。
これを curve に接続して好きなようにカスタマイズ後、
OutDensity に繋ぐ。











5.KCMをもうひとつ追加。color を設定する。
InChannel で density を選び、vector を経由して OutColorに繋ぐ。














以上

ランプテクスチャを使った制御。(ramp は傾斜という意味だったんだね。ななめの、とか)

上記5.から
KCMで color ではなく textureCoordinate を選ぶ。それ以外は同じ。

6.standardMaterial Diffuse に Ramp テクスチャを張って、PRTLoaderにアサインすればOK。


-備考-

キャッシュしない場合、カラーオーバーライドで同じことができる。
この場合、マテリアルは必要とせず、テクスチャを所定のスロットに張ればよい。
すぐしたのOverrideで新規にカスタマイズチャンネルを追加、上記のように設定すればテクスチャ座標が定義され、rampなどでグラデーションがつけられる。
ただしこの方法だとKrakatoaでレンダリングされるパーティクルがすべて同じになるので個別に制御したい場合は工夫が必要。