(500)日のサマー

運命とか、ソウルメイトとか、真の愛とか、そういうのはナンセンスで、アメリカの映画配給会社が作った”呪い”のようなもんじゃないのか、ってこの映画見ながら思ってしまったわ。

結局サマーはただのビッチじゃん。

ってか、大部分の人間はサマーみたいな人だと思う。トムみたいな人間に出会えた人は幸せだろうよ。

それにしても、この映画、色合いが綺麗だ。LAって言えば、もっと派手なイメージがあるけど、こんなLAもあるのね、思った。監督がもともとミュージックビデオ作ってたひと、というだけあって、音楽とリンクさせたシーンは面白かったな。映画全体的にミュージックビデオっぽかったけど。

日にちを前後させる手法ってなんか意味あったのかな。途中からわけわからなくなりました。別に日にちを順番通りにたどっていったとしても面白くなったと思う。

画像処理です。

最近画像処理してます。とりあえず、使えそうな技術とかをつらつらとやって、論文読んでいくしかないわ。

Active Contour について

Snakes: Active Contour Model, Michael Kass他
http://www.cs.ucla.edu/~dt/papers/ijcv88/ijcv88.pdf

と、この論文をまず読んでみますか。

 エネルギー最小化をする過程が蛇に似てるとか、そんなことがまず書いてあります。んで、木の年輪の話がしてある。図にあるように色々な解釈の仕方があるが、グローバルなミニマルを見つけるんじゃなくて、ローカルなミニマルを見つける、という話になっている。これは多分、与えられた初期値に一番近いものをさがすてきな感じだと思う。

 まず、スネークは何から力を受けるのか。一つめがスプラインの曲がり具合からの力。曲がっているほど強い力が働く。二つ目がイメージ自体から来る力。これは画像にスネークを最適化する際に生まれる力。そして三つめが外部の力。これは例えばユーザーインターフェイスとか、もっとハイレベルなInterplationから来る力。


■ 英語に関するメモ

Hysteresis: 履歴現象
salient: 目立つ
constraint: 強制
membrane: 薄膜
curvature: 曲がること

second-order discontinuous: 二階不連続性??その後にDevelop a cornerって書いてあるんで、不連続になる、ということでしょうか。

CUDAが結構できない子です。

さて、だいたいのシミュレーションもできてきたのでCUDAを使ってせっかく実装してみたのですが、どうもうまく行きません。CUDAの実装をやってみてて、どれだけCPUがうまく出来ているのかがわかった。

で、以下に難しいと考えられる部分を挙げてみた。

・キャストの問題。C言語のように(float)ではキャストできない。また、__int_as_float()関数を使ってみるものの、これもあまりうまくいってない。
・一つのスレッドで値の参照のしすぎには注意。そう、これがどうもおかしい。自分は、デバイスメモリ上にいろいろと値を確保して、それをいろんなところから参照させて計算して行く方法をとっていた。ちょっとわかりにくいかもしれないが、一つのスレッドで色々なところから値を参照し、さらに色々なところに書き込んたりしてた。どうもこれはうまくいかないらしい…これはさすがに困った。まじでどうしたらいいかな><

マルチグリッド法の続き

 凄い。この日記のぐだぐだ具合がすごい。ちゃんとやろう。

前の日記のマルチグリッド法の記述を参考に、今日は具体的に話を進めるのである。Charge Densityを求めるところまではできた。次はこの値からいよいよポワソン方程式をといて電磁ポテンシャルを求める。この段階ができれば、電位を求めるのは比較的簡単かと。

今分からないところは、

  • 初期条件をどうするか(ランダムに与える?)
  • 具体的なマルチグリッド法が分からない。(ルンゲクッタでやっちゃったほうが早いんではないか?)
  • 境界条件がはっきり載ってない!(結構致命的…)

さてさて、これらをどうするかなんだけど。

今日は晴天なり

 わりと実装が進んできたような気がする。それにしても、実装って面倒くさいなぁ。どうやってデザインすればいいか、結構微妙なんだが。んー

 ここにだらだらと書き込んでいるのはなんかやる気がいまいちでないせいなんだけど。どうしましょうか。どうしましょうか。シミュレーションに関するデータは元のファイルで一括管理しておいたほうがいいのかもしれない。それを計算するクラスに渡すとか。でもそれってあんまり意味ないような。計算するだけならCで大丈夫だろう。どうしてらいいかな??っていうか、三次元配列とかは使うのメンドクサイんで、一次元配列にしちゃいますか。

非常にイライラする

 今日は部屋にメガネを忘れてきてしまったので非常に画面が見にくい。それで気分が悪いので、後ろに座ってるやつも本当に嫌だ。
 
 さて、今日もシミュレーションのコードを書く必要があるんだけど、どうも乱数の部分で止まってしまっている。完全にランダムに粒子の衝突を再現するのって本当にどうしてらいいものか。課題的には次の通りだ。

  • 乱数による粒子の挙動の再現
  • 頂点シェーダーやピクセルシェーダーについて理解を深めて今レンダリングで何を行っているのか、はっきりさせる。

 シェーダーについての理解をいままで曖昧にしてしまっていたせいで、どうもレンダリングに対する理解がぼんやりしてしまっているようである。どうにかしないと。