Flashで布シミュレーションをしてみました。
布シミュレーション / Cloth simulation - wonderfl build flash online
3D表示はこの前のソースを流用しました。
実はAS3の3D表示にはdrawTrianglesという便利な関数があるんですが、
Zソートさえしてくれない(配列の順?)ので
複雑なオブジェクトは表示できませんでした…
布シミュレーション自体は割と簡単です。
縦横の解像度分だけの粒子を用意し、3種類のバネで繋いでいます。
1:隣の粒子を繋ぐバネ
2:斜めの粒子を繋ぐバネ
3:一つ飛ばしで粒子を繋ぐバネ
1だけだと布が平行四辺形につぶれてしまいます。
2も加えると斜めにつぶれる事はなくなりますが、3次元上だと前後に折れ曲がってしまいます。
そこで3のバネを加えることで、布としての弾力を表現しています。
本当はもうちょっと解像度上げたかったのですが、
重さ的にこれが限界でした…
もう少し速いと表現の幅が広がりそうです。