管理人syogeki            主にCG日記。


by g-sp
カレンダー
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

GN粒子その2

ようやく思い通りの結果が得られました。
ぶっちゃけコレくらいの機能は標準で付いててほしいんですが==
遮蔽オブジェクト関係無しにレンダリングされるレンズフレアってどうなんだろう・・。
f0106593_170569.jpg

どうやらスクリプトオペレーターで出力している値をエクスプレッションの式の中に入れると一番最初だけ反映されて、後は全く更新されない模様・・。
逆は可能みたいでした。
どうしてもエクスプレッションでライト強度にランダム性を持たせたかったので、エクスプレッションでノイズを入れたダミーの値を作っておいて、スクリプトオペレーターでそれを読み込んで直接ライト強度を書き換えてます。
値の書き換えは
SetValue ライト強度,値
というやり方をしていたら、ものすごく重くなりました。
もうカメラを動かすのもツライくらいに。
set obj=Dictionary.GetObject(ライト強度)
obj.value=値
という風に書き換えるだけで、結果は同じなのに段違いのスピードになります。
それでもパーティクル数が増えるとある程度カクカクするのですが、ミュート機能をつけて解決。
こんなに苦労することになるとは思っても居ませんでしたが、うまくいってよかった。

今回ので、スクリプトオペレーターの仕組みをようやくまともに理解しました。
ありがたみもわかってきました。
でも何故Foundationでスクリプトオペレーターが使えるのかは未だに不思議です。
XSIのパッケージ別機能比較を見る限りでは、どうみても入ってません。
自分も最初は知らなかったし。
逆に今後のアップデートでホントに使えなくなったら新しいバージョンいりません。
それくらい便利な機能です。
[PR]
by g-sp | 2008-02-02 17:19 | エクシア