セカンドライフのパーティクルシステムの特殊設定

投稿日:

今回は、パーティクルシステムについてのお話です。
というか、自分用のメモです。

パーティクルは、llParticleSystem / llLinkParticleSystem で、
パーティクルシステムの設定を行うとできるのですが、
パラメータがたくさんあり、使うのが面倒です。

今回、日本語wikiにはなく、この英語wikiに書いてあるのについてまとめてみます。
なお、英語用のwikiは、「llParticleSystem翻訳)」です。

・System Behavior(パーティクルのふるまい)
Value
– PSYS_PART_RIBBON_MASK

・Particle Appearance(パーティクルの外観)
PSYS_PART_START_GLOW
PSYS_PART_END_GLOW

・Particle Blending(パーティクルブレンド)
PSYS_PART_BLEND_FUNC_SOURCE
PSYS_PART_BLEND_FUNC_DEST
Values
– PSYS_PART_BF_ONE
– PSYS_PART_BF_ZERO
– PSYS_PART_BF_DEST_COLOR
– PSYS_PART_BF_SOURCE_COLOR
– PSYS_PART_BF_ONE_MINUS_DEST_COLOR
– PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR
– PSYS_PART_BF_SOURCE_ALPHA
– PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA

上から順番に説明していきましょう。

【PSYS_PART_RIBBON_MASK】
リボンパーティクル と呼ばれるものを作成します。
途切れ途切れになっていたパーティクルの端を結合します。
リボンの「幅」は、 scale_start.x と scale_end.x に依存します。
リボンのセグメントの長さは、粒子間の距離に依存します。もし距離が 0 ならばレンダリングしません。
リボンパーティクルは、通常のパーティクルと違い常にカメラの方向を向くようにレンダリングしません。
PSYS_PART_FOLLOW_VELOCITY_MASK の設定は無視されます。
次の設定を併用することで効果を確認できます。
・PSYS_SRC_TEXTURE (テクスチャは TEXTURE_BLANK
・PSYS_SRC_PATTERN_DROP
・PSYS_SRC_ACCEL
・PSYS_PART_WIND_MASK

【PSYS_PART_START_GLOW / PSYS_PART_END_GLOW】
パーティクルの発生時と消滅時のグローのかかり具合を調整します。

【Particle Blending】
パーティクルを描写するときの合成方法を設定します。
内部では、OpenGLの「glBlendFunc」を使用して実装しています。
Visual glBlendFunc + glBlendEquation Tool」を使うと分かりやすいと思われます。
組み合わせはたくさんありますが、一般的な合成方法だけをここに書きます。

◆加算合成◆
PSYS_PART_BLEND_FUNC_SOURCE, PSYS_PART_BF_ONE,
PSYS_PART_BLEND_FUNC_DEST, PSYS_PART_BF_ONE

◆アルファブレンド合成◆
PSYS_PART_BLEND_FUNC_SOURCE, PSYS_PART_BF_SOURCE_ALPHA,
PSYS_PART_BLEND_FUNC_DEST, PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA

他に組み合わせでスクリーン合成などはできそうですが、
減算合成はできないようです。

広告

コメントをどうぞ(承認された後に公開されます。メールアドレスの記入は自由ですが、記入した場合でも一般公開されることはありません)

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中