Sunday, May 31, 2009

この論文は読めない

Volume conserving finite element simulations of deformable modelsを読んでいましたが,全然内容を理解できません.ですので,次の論文読みに移ろうと思います.
別の機会に,運悪くこの論文を読む羽目にならないように,ここでメモって残しておこうと思います.

この論文に書かれている有限要素法は,2章 Time Discretizationと3章 Spatial Discretization,4章 Collisions and Contactを理解しなければ実装はできない気がしているのですが,正直2章の時点でつまずいています.この章には,1タイムステップの処理内容が記述されています.1から9ステップで構成されていて,位置と速度を計算します.次のタイムステップの位置は現在の位置と速度(なんか色々ややこしい処理したあとの速度)から計算しますが,次のタイムステップの速度は,式を見る限り(ステップ8の式に7の式を代入することで),加速度にタイムステップをかけた値になるはずです.この速度では,現在の速度は失われてしまいますので,加えられた力の分しか計算しません.しかし,その加速度も明確に計算式が記述されておらず,同著者の論文をちょっと漁ってみても,加速度の計算の記述はありません.何を計算すればよいのかさっぱりわかりません.
体積を一定にするために,位置を決定する速度を適当な値に調整し,次の速度を適当な値に調整するのは,わかりましたが,これらの計算方法がわからないので,どうしたもんか,といったところです.論文の売りは,Divergence freeとone-ringの体積の保持でしょうから,動きの計算は適当でいいのかもしれませんが,この論文に書いてあることは,実装できないので,もう読むのをやめます.次の論文に移ろうかと思います.

Monday, May 25, 2009

次はElasticモデル

次は,Elasticモデルについて,IrvingさんらのVolume conserving finite element simulations of deformable modelsを読もうと思います.

Sunday, May 24, 2009

球の衝突判定実験











Bridsonさんらの論文に書いてある衝突判定法を用いてFEM法で作った球で衝突判定の実験をし,この衝突判定法で判定ができることを確認した.
実験のために以下の準備をした.
・球のメッシュの頂点を移動可能にし,速度と加速度を設定できるようにした.高い精度が必要ないので,オイラー法でシミュレーション.
・球の下に面を配置し,衝突判定をする.ここでのリアクションは,衝突していると判定された頂点は動かないようにする.
・球に下向きに加速度をかけ続ける.なんとなく重力加速度を意識した.
この実験の結果が上の数枚の画像.左側はメッシュのエッジの描画で,右側はそれに面をつけてレンダリングした結果.

ここでは,Bridsonさんらの論文の説明が不親切な部分があるので,少しメモを残しておく.

この衝突判定法は,三角形x1x2x3と点x4の衝突を検知する手法.というか,結構一般的な手法なので,Bridsonさんらの論文を読まなくても,CGの数学関係の本には書いてあること.

まず,点x4と三角形x1x2x3を含む平面の距離を計算し,接触の距離h以下の点x4を判定する.準備として2個のベクトルを計算する.1個は,頂点x3(実はx1でもx2でも十分)から点x4までのベクトルを計算したベクトル.もう1個は,三角形の法線ベクトルnを計算したベクトル.これら2ベクトルの内積は平面からの距離であり,条件(x4-x3)・n < hが満たされるとき,x4と三角形x1x2x3の平面は接触しているとする.

次に,点x4を平面上に射影した点x'4が,三角形x1x2x3の内側か判定する.内側ならば,三角形と点は接触している.次の連立方程式を解き,その解を条件式にはめることで判定できる.
(x1 - x3)・(x1 - x3)w1 + (x1 - x3) ・ (x2 - x3)w2 = (x1 - x3)・(x4 - x3)
(x1 - x3)・(x2 - x3)w1 + (x2 - x3) ・ (x2 - x3)w2 = (x2 - x3)・(x4 - x3)
1 = w1 + w2 + w3
点x'4は,x'4 = w1 x1 + w2 x2 + w3 x3である.また,w1とw2がw1>=0, w2>=0, 1-w1-w2>=0を満たしていれば,点x'4は三角形の内側である.
以上のように,接触の判定を行う.

ちなみに,今回のリアクションは,適当に設定したため,論文のモデルに則っていない.

Wednesday, May 20, 2009

素振り200本効果、か?

先週の土曜から剣道の素振りを欠かさず一日200本している.
素振りをしているので,手の皮は破れるし,腕も痛くなる.
それでも続けるのにはわけがあって,拙者から剣道を抜いたらただのコンピューターオタクもしくはアルゴリズムオタクみたいになってしまう.
この壁だけは守りたい.ただのコンピューターオタクとは思われたくないんで.

そういうことで,振っているが,ここ最近,自分の性質や体調に変化があらわれた.
まず,攻撃性が増した.最近,口をついて出てくるのが「デビルサイン眼つぶし」.デビルサインというロック特有のポーズをとりながら眼つぶしするというナウい攻撃手法.やたらとこの発言が多い.
次に,階段を降りるとちょっと足が痛い.これは筋肉痛という,アレなコレに関する痛み.
最後に,常に眠い.基本的にやる気が起こらない.夜に風呂入るのも面倒なくらい.まぁ入るけどさ.

そんな感じで,いろんな変化が出てきた.
素振りはダンベルランニング以上に肉体的な変化も期待できる.基本的に腕は太くなる.相当きつい.他にも,腹筋がついてきたなど色んなところが強くなっている気がする.

Sunday, May 17, 2009

collisionについては,そろそろいいかな

BridsonさんらのRobust Treatment of Collisions, Contact and Friction for Cloth Animationを読ませてもらっているが,最後まで読もうという気になれない.
その理由として,以下3つ.
1.とにかく一章が長い.
2.求めている情報以外の文章が多い.
3.大袈裟
7章の半分まで読み,まとめの10章まで,あと3章だけど,面倒なので萎えた.

ここでは,論文に記された「布以外の一般的な動的シミュレーション」に関する内容をざっくりと説明する.

・オイラー法やルンゲクッタ法などの一般的な微分方程式と同様に,設定したタイムステップ⊿t後のオブジェクトの表面の位置と速度を推定する.
・ものと当たっていたら,そこに急ブレーキをかける.
・近づいたり,当たりの判定は,法線ベクトルと三角形のある頂点からもっとも近い点までのベクトルの内積が,設定した厚み以下なら当たっているとする.
・高速に処理するために,空間分割を用いる.

といっただけのこと.
売りが布の摩擦なだけに,シミュレーション方法に驚きはない.

三角形上での当たり位置は,一般的な平面と点の距離で求まる.論文には,わざわざ式が書いてある.空間上の当たりの位置は,tタイムステップ時の距離が0になる位置を計算することで求める.布のシミュレーションはばねモデルで計算している.大した話じゃないと思う.

ここに記したようなタイムステップと当たり判定に関しては参考にするけど,布のシミュレーションはあまり納得できないので,気にしないことにする.

時間かけて読んだ割には,得られる知見が乏しい.
読むポイントが見いだせなかったことに原因があるような気がする.反省.

Saturday, May 16, 2009

200本の素振りごときで手の皮がむけそうだ

稽古を続けていないから,剣道できる体じゃなくなっている.
ひさしぶりにまともに素振りをした.たったの200本だけど,左手のてのひらの皮がむけそうになっている.
やべぇくらいに弱っている.2000本振ろうと思ったけど,さすがに続けられない.

素振りの動機は,ゴールデンウィークに剣道をして,自分の弱さにびびったから.
せめて素振りだけでもしようと思ってたけど,店を知らないので,数日にわたりボチボチ探した.
それで,共栄武道具という店を秋葉原の駅近くで発見.竹刀を買ってきた.組み立てた状態の大人用の竹刀(3尺9寸)が3500円とすごく安かった.
素振りで剣道が強くなるのかという疑問を抱く人もいるかもしれないが,素振りで強くなる.間違った素振りをしていなかったら,間違いなく強くなる.素振りは練習の基本.
ということで,今日から2000本振ってやろうと思っていた.しかし,その矢先,200本で,この手の状態になった.
こりゃまいったけど,徐々に立て直して,まともに2000本振れるようになろうと思う.
1か月後になるだろうか.毎日振ろうと思う.

石川に帰る頃には,まともに剣道ができる状態になっていたらな,と思う.

論文読みの進みが悪かった反省

今週は仕事が忙しかった.計画では,こんなはずではなかったのに.
時間に追われて,論文読めなかった.読んでも途中で寝てしまってた.
あー反省だ.ここに,今週の3項目反省点を挙げる.

1.勝手に仕事を増やさせないこと.
2.文書に時間をかけること.
3.さなさんを信用しないこと.

1.を遂げるために,人の話は,聞いてないフリしよう.
といっても,最近はメールが送りつけられてくるし,直接,電話も来るようになった.人気者になってきた証かもしれないが,仕事が増えていくのは,つらいなぁ.
ということで極力,聞いてないフリしよう.

2.を遂げるために,文書に時間をかけて作りこんで,なるべく人に仕事を振るような記述を増やすことにしよう.
人の話は聞いてないフリしているけど,他人がやるって言ったことは前面に押し出していこう.
人に仕事を振っていたら,そのうち嫌われるだろう.これは,都合が良い.

3.は,1と2とは毛色が違うけど,重要なことで,あの人にはなんの情報も与えないようにしよう.
あの人に何らかの情報を与えると,仕事を増やそうと努力をしてくる.これは面倒だ.
さらにいえば,関係ないのに,ニコニコしながら近づいてくる人は絶対に裏がある.最悪を考えれば,なんらかの成果がでたとき,刺激を与えたなどと言って,成果を持っていく可能性だってある.

来週はこれらを遂行し,論文を読む時間を作る.絶対に.

Tuesday, May 12, 2009

思考実験って面白い

他人の論文を読んでいると,何を考えてその思想に行き着いたのか気になることが多い.

その知りたい欲を満たすために,最近実践しているのが,「書いてある言葉を極端にとらえる」ということ.
極端に考えると,著者らが絶対に避けたいことが見えてくる.
なんでも極端に考えると,その極端さに嫌気がさすのだけれど,著者の哲学を見れて面白い.

今日ネット上をうろうろしていたら,思想実験という言葉が目に入った.
・臓器くじ
・トロッコ問題
などなど.

wikipediaによると,臓器くじは,ランダムに人を殺し,その殺した人から臓器を出して,臓器を必要としている人に提供し,命を助けるという社会制度.
これの問いは,ひとりを殺して多くを救うことは,良いか.それとも悪いか.ということ.
まぁ難しいわな.

また,wikipediaによると,トロッコ問題は制御不能なトロッコに乗っちゃったけど,このままいけば,線路上の5人が死ぬ.けど,分岐点で線路を変更することができる.と思ったら,そっちには1人立っていた.どっちも誰か死ぬけど,5人を助けるために,線路を変更することは,許されるか.
というこれもまた,難しい.

というか,極端.
もうちょっと穏やかな選択肢はないのか.と質問に質問で答えたいくらい,極端.
このように極端に考えると,自分が何に対して重視しているのかよくわかってくる.

同様に,論文に書いてある言葉を極端にとらえると,何ができて,何ができないのか,何を考えているのかがなんとなく見えてくる.この著者は何を重視したのか.と.
とらえ間違いを避けるように書いてある論文なら,特にその色を感じることができる.

ような気がする.

Sunday, May 10, 2009

Robust Treatment of Collisions, Contact and Friction for Cloth Animation読み始め

BridsonさんのRobust Treatment of Collisions, Contact and Friction for Cloth Animationを読ませてもらっているが,なかなか難しく感じる.知らないことが多いだけに.

イントロだけさらっと目を通したが,わかった(ような気になっている)ことは3点.
・布地のようなヘナヘナなモデルだと,衝突判定の演算がめちゃくちゃ多いということ.
・布地の伸縮や曲がったりの変形は難しい
・手で何か操作する

布のアニメーションの何が難しいんだ?って思っていましたが,この論文のイントロを読んで難しいことはわかりました.
布地の面ってメッシュで作られていて,ヘナヘナな布だと,ものにかぶったり,布自体がくしゃくしゃになって,メッシュの頂点すべてに対して,衝突判定が必要になったりします.しかも,動きのあるシミュレーションだと,タイムステップの取り方次第で,布の面が貫かれたりします.
だから,一回一回計算する必要があるんだよ,ということでした.
これは確かに面倒な処理だと思います.

ただ完全に理解したわけでもないので,このまま読み進めてみようと思います.
読み進めていれば,そのうち理解が深まると思いますので.

Saturday, May 9, 2009

新メガネ


新メガネと書いてニューおしゃれメガネと読む.
ついに来ました新しいメガネ.
学生時代に買ったふざけた赤色の(テンプルの片方,黒色)おしゃれメガネは,新し過ぎて社会では異端視されていたので,今回は社会になじめるように,かための黒いおしゃれメガネ.

度数は同じなので,併用していきます.

ちなみに,ボクがメガネを購入しているのは,和光眼鏡という金沢市にある小さなメガネ屋.
比較的高価で,マニアックなおしゃれメガネがそろった店なので,儲かってんのか心配です.
まぁボチボチボチボチやっているとのことです.
店主とずいぶんと関係が近いです.

Thursday, May 7, 2009

解放

解放されたぁ.
ようやく一仕事終わって,自分の時間がとれる.
ということで,明日からは,FEM開発の続きをしようと思います.

で,どんな計画で開発していこうかというのが,FEMを注目した当時の記事に書いてありまして,次は,

自己衝突
Robust Treatment of collisions, contact and friction for cloth animation

に関して勉強しようと思います.

Tuesday, May 5, 2009

ひさびさに剣道した

約1年ぶりに剣道の稽古をしました.
フットサルやダンベルランニングで運動しているので,体力は余裕があるだろうと思っていたのですが,ぜんぜん以前のような鋭い動きができなくなっていました.
それでも,学生と簡単に試合をして,勝ちましたけどね.それでも,体が動かないと感じるくらいには,衰えていました.
時間がないことを言い訳にして,何かと筋トレさぼっていましたけで,ターザン買って体を鍛えようと思います.ちなみに今月は腹筋が特集だったような気がします.
腹がたるんできている自覚がある人はターザン買って,鍛えましょう.

Friday, May 1, 2009

8連休

いやいやいやいや,8連休ですよ,奥さん.
今日は3日目なので,残り5日間です.

こんなに長い休みだと何するか迷っちゃうのが普通だと思いますが,ボクの場合,もうやることが決まっていて,何するかを迷うという連休前のワクワク感なんて一切ありませんでした.
今,何をしているかというと,文書書きで,まぁ例の如くというか,いつものことなので察しがよい人は,この文読まなくても,わかるくらい,いつものことです.
この休みの間に約束の文書を仕上げてしまいたいのですが,本当に仕上げられるか心配なくらい進みが悪いです.
何かね,こう,やる気があるんだけど,やる気がないというか,非効率的な勉強をしているような気がするんですよね.
数年間,英文書を書いていれば,そのうち英文書を書く能力なんてものは身に付くだろうし,周りの人はみんなそうやって身につけただろうから,経験に基づいて,たくさん書いたらいいと言うのかもしれない.だけどボクが思うに,文書書きという文系のことなんて,頭使わなくてもルールさえ知っていればできることなんだから,体系的に大学で勉強させてくれたら数年もかからず能力付くのではないかなと思ったりします.

ざっくりとしたプランを話すと,ドクターコースに入学して,半年でa)一つの研究成果をだして,もう半年でb)国際会議の論文書いて,もう半年でc)原著論文書いている間に,b)の発表してのサイクルを2周して3年で卒業という流れ.b)とc)でしっかり,英語のライティングの指導を受けたら,ソロでも書いていけるようになるだろう.大きい会議だったら,b)とc)が一緒になるかな.まぁそれだったら手間が少なくていいんだけど.a)の中でも,何回か国内での発表をするだろうから,それで練習して,ここでも自信が付けられればいいな.
このサイクルによって主要論文と呼べる論文を2本確保したい.主要論文と呼べるものができたら,ある程度一人でもやっているけるかなぁ,くらいの自信をつくと思うんですけど(今はまだ「あー,あの下ネタ得意な人ね」ですから).

という夢を描きながら,現実逃避していますが,そろそろ現実に戻る時間となりました.