ブログトップ 記事一覧 ログイン 無料ブログ開設

Dycoonの日記

2008-01-27 Meshless Deformations Based on Shape Matchingを実装してみた このエントリーを含むブックマーク

以下の論文にあるShape MatchingによるMeshless Deformable Objectを

実装してみた。


Meshless Deformations Based on Shape Matching

http://www.beosil.com/publications.html

http://www.beosil.com/download/MeshlessDeformations_SIG05.pdf


実装したものの動画はこれ

D


パーティクルからShape Matchingで剛体などの物理パラメータを求めて

それにあわせてパーティクルが引き寄せられる先(goal)を制約として

与えることでMesh構造のない変形表現を実現している。




ShapeMachingをおこなううえで、

Polar decomposition(極分解)をおこなう必要があるが

これの計算方法は以下に書いてある。


力学演習

http://www.jancae.org/study/04/pdf/an01.pdf


でsqrt(transpose(Apq)Apq)を求めるために行列の対角化が必要になる。

最初はQR分解のコードがすでにあるという理由で

QR法を使用していたが、


QR法による対角化

http://home.f01.itscom.net/toge/programingreport/program/clang/qr.html


3x3ぐらいの行列だとJacobi法による対角化のほうが、かなり速いようである。


Jacobi法

http://hooktail.org/computer/index.php?Jacobi%CB%A1

実対称行列の対角化

http://pc-physics.com/taikakuka.html


右の青いほうの直方体はShape MachingをしたときのGoalとなるべき

頂点の位置を求めてみた例である。

Scalingも含めてそれらしい値が求まっていると思われる。


接続情報を持たないと論文には書いてあるが、

実際にはその役割をしている部分があるようである。

こちらの資料では

http://graphics.stanford.edu/courses/cs468-05-fall/slides/maksim_deformation_matching_fall_05.pdf

いくつかのclusterにまたがっているparticleがあって、

それはclusterごとのgoalの平均値をgoalとするようである。

私のものでもそのように実装してみた。


この手法ではパーティクルごとの処理が割りと軽いのでclusterを少なめにして

運用するのがよいと思われる。

もちろんクラスターが少なければ細かい変形はしなくなるが。


少ない物理パラメータで複雑な物体の動きを近似してしまうというと、

昔FFD(Free Form Deformation)で大雑把なParticleの格子を作って

衝突判定はポリゴン単位でおこなうというものを作ったりもしてた。

http://www.ceres.dti.ne.jp/~ykuroda/oyaj/dialy/diary2000-4-30.html

接触などの取り扱いの仕方に問題があるのでそこら辺がよろしくないが。


大雑把な物理パラメータで弾性物体を表現することは

構造的にはまり込みを起こすことなどを起こしにくくし、

シミュレーションを取り扱いやすくするという効果もある。

f:id:Dycoon:20080127120905p:image

ShapeMachingではParticleごとの計算量は小さいので

大雑把にクラスターをきれば計算量は小さくなる。

FFDでは頂点ごとの計算量が結構大きかったので

この点の効果は少し少なかったと思うが。


あと元の論文ではParticleをgoalへ引き寄せる力の成分はdtで割っている。

これは安定性を得ることができるが、

dtを変更するとそれに応じてばねの係数が変わっているような結果が出ることは

気に留めておいたほうがいいかもしれない。


右の赤いほうの直方体はついでにTight FitなOBBを求めてみたもの。

共分散行列の固有ベクトルをOBBの軸とするというもの。

PCA-basedなものに比べるとTight Fitではないらしいが

OBBを求める速度はこちらのほうが速いと思われる。


OBBTree: A Hierarchical Structure for Rapid Interference Detection

http://www.owlnet.rice.edu/~comp650/Spring01/presentations/OBB/OBBTree.ppt


Realtime Collision Detection

http://www.amazon.co.jp/Real-Time-Collision-Detection-Inteacive-Technolagy/dp/1558607323


とりあえずいろいろな知見を得ることができた。

今後に生かしたい。