2011年 2月

 FileReaderのお試し中 / magicien 

WebGLのソース公開の準備そっちのけで新機能実装中...

ファイルをドラッグ&ドロップで読み込めるようにしようと実装を進めたところ、
FileReaderでのファイル読み込みが非同期でしか出来ないというところで頓挫。
ループを回して、ステータスが変更されるのを待とうとしたところ、
ループ処理が回り続けて、いつまでもファイル読み込みに処理が渡らない...
sleepやyieldが実装されていれば...と思ったら、yieldは既に実装されている?
でもyieldの仕様がかなり怪しい。
結局、yieldを使ってもFileReaderのファイル読み込みに処理を譲ることは出来なそう。

こうなったら根本的にプログラムの構造を直した方が良いかもしれない。
ついでにWeb Workersに対応させて、マルチスレッド化してしまおうかと考え中。
でもWeb Workersも値がコピー渡ししかできないのが不満、というか不安。
わざわざマルチスレッド化して動作が重くなったら凹むなぁ。

追記:
ちょっと実験したら、
RangeError: Maximum call stack size exceeded.
って出たので、Web Workersでファイルのパースは諦め。
でもプログラムはイベントドリブンに書き換えねばなるまい...
HTML5のクラスは使いどころが難しいなぁ。

2011/02/13(Sun) 22:41:48

 IK再考中断 / magicien 

皆様、あけましておめでとうございます。

IKに気を取られている隙にドメインの有効期限が切れてしまいました...
というわけで、今後は「darkhorse2.0spec.jp」になります。
気分によっては、またドメイン変更するかもしれませんが、とりあえずこれで。

で、問題のIKについて。

結論から言うと、挫折しました!
ヤコビアンを使ってIKを計算しようとあれこれやってみましたが、
どうにもうまくいかない上に非常に重い。
逡巡の末、IKは保留する、という結論を出しました。

IKの実装の過程で、行列のLU分解や疑似逆行列の計算、クォータニオンのlog、expが実装できたので良しとします。

ただ、今のままだと、モーションによっては、脚がグニャグニャになってグロテスクです。
サンプル用に公開しようと思っていたモーションもグニャグニャになるので、どうしたものか。

2011/02/03(Thu) 09:42:39