粒子系の文法


文法設定タブは、プロパティパネルの文法アイコンをクリックで表示されます。



粒子データのファイルは2つのパート、ヘッダとボディからなるものと仮定しています。 ヘッダは、ファイル全体に関するパラメータ、粒子数やそのスナップショットの時間などを収容する部分です。 ボディ部分が、それぞれの粒子データを収容する部分です。

Format.Main

このパネルには、ファイルフォーマット自体に関する設定があります。

タイプ

ファイルタイプは、アスキーとバイナリーが選択できます。

補間

スナップショット間の補間方法です。 線形補間がもっともよく使われるもので、スナップショット間を線形で補間を行います。ステップでは、補間は行いません。そのため、スナップショットごとに飛び飛びに粒子が移動するような動きになります。 もっともスムースな補間を行うのはエルミート補間で、スナップショットでの位置と速度の情報を使って補間を行います。(エルミート補間はまだ実装していません)

配列の向き

ボディには、粒子の情報がインデックス順にループで配置されることになりますが、ループの順番には2つの可能性が考えられます。このパラメーターではループの順番を設定します。

ここでは x0 が 粒子0の x 情報をあらわすとします。
データの収容順として、x0, y0, z0, x1, y1, z1, x2, y2, z2, ....繰り返し.
という順番がありえます。これを水平としています。 時に別の順番で収容されるデータがありえます。
たとえば, x0, x1, x2, ....., y0, y1, y2, ..... z0, z1, z2, .... 繰り返し
というような場合です。これを垂直としています。

ヘッダとボディの編集

コンボボックスを使ってそれぞれのアイテムを選択します。 [+] ボタンは、アイテムの挿入 [x] ボタンでアイテムの削除を行います。

文法のアイテム



文法用のアイテムのリストは上の図で示すようなものになります。
Value0-2 は、任意の変数を収容するスロットになっていて、着色などに使う変数になります。典型的には、温度などの物理量を収納します。3つのスロットが用意されています。

Dummy は、データの読み込みをスキップするためのアイテムです。シミュレーションデータなどには、可視化には使わないデータが含まれていることも多いですが、そうしたデータの読みこみをスキップします。

Zindaij4 では粒子の ID は整数型で保存されています。しかし、大きいシミュレーションの場合にはIDが整数型の最大値(約21億)よりも大きくなることがありえます。
Zindaiji 4 でそこまで大きなデータを扱うことはできませんが、データを削減したデータなどでもIDが整数型を超えていることはありえます。
そのような場合のために、ID (long long) というスロットが特別に用意されています。(現在実装はされていません。リスト内に表記されているだけです。)

IDと粒子数の増減

各ステップでの粒子数が増減している場合、つまりステップ間に粒子が生まれたり消滅したりする場合には、ステップ0の粒子0がステップ1の粒子0と同一の粒子であるとは保証されません。 そのような場合には補間にはID情報が必須になります。IDが同じ粒子を探すことで、どの粒子がどの粒子と同一か探し出します。

(現在、IDを使っての補間は未実装です。)

文法のサンプル

バイナリー



これは、バイナリーデータの文法の例です。配列の方向は水平と仮定します。
バイナリーのデータは、隙間なくデータが詰まっていることを仮定するので、次のような並びで並んでいるデータを読むことになります。
Particle number (integer), Time (float), x0 (float), y0 (float), z0(float), type0(int), size0(float), x1 (float), y1 (float), y1(float), type1(float), size1(float) ... 粒子数だけ繰り返し

もし粒子数が省略された場合は、ファイルサイズから粒子数を推定します。
時間が省略された場合には、連番ファイルの番号を時間と仮定します。

アスキー



アスキーファイルでは、データ間はスペースで分割され、各粒子のデータごとに改行されるものとします。
上の図のようなサンプルであれば、
number
time
x0 y0 z0 type0 size0
x1 y1 z1 type1 size1
... 粒子数だけ繰り返し
粒子数が省略された場合は、ファイルの行数から粒子数を推定します。

垂直の場合

配列の方向を垂直に設定している場合には、上記の例ではファイルの文法は次のようになります。
number
time
x0 y0 z0
x1 y1 z1
... 粒子数だけ繰り返し
type0
type1
... 粒子数だけ繰り返し
size0
size1
... 粒子数だけ繰り返し

戻る
inserted by FC2 system