また日記書かない病発動。
現に何もやってないのと、やっても地味な作業がほとんどなので書くこともないんだけど。
あ、RubyKaigiの発表概要英語版を書いたりした。6/1の19:00からチケット販売らしいので忘れないといいよ!即効売り切れるから。
Blender 2.5のビデオを見てびびったりしてた。パネルなんかのUIもPythonで書いて即反映できるのか。ゲーム用のデータを編集するのにも便利そうだねぇ。あとはRubyが使えれば最強すぎるんですが…。
CPUでのスキニングができた。できたといっても動画も無いのはなんだな。動画も貼れるように考えておこう。
CPUというかC++レベルでのスキニングだね。Rubyレベルではできてたしね。
変形前の頂点情報はメインメモリに(今まで無駄に)保持してたから、バッファオブジェクトには変形したのを書き込むだけ。無駄にはならなかったよ。
思ったより簡単にできた割には著しいスピードアップが。ちゃんと計ってないから分からんけど、体感で数十倍から数百倍は速くなったんじゃないでしょうか。まあRuby側のコードはあまりにも適当だったんだけどさ。
いずれにしろ頂点ごとの処理なんかはさすがにRubyでは厳しい物があるね。
Lambertシェーダを書いたりもしてた。ふむふむ、やっぱりシェーダはめんどいな。どのパラメータがある/ない/定数/uniform/テクスチャとかいろんなパターンに対応しないといけないってのがなんとも。そのうちなんとか考えたい。
プロファイルをとってみたんだけど、今度はスケルトンの行列計算が重かった。無駄な回数繰り返してるのがやばいので直してやって解決。プロファイルを見る感じで目立ったボトルネックは無い感じ。
しかしやっぱりシェーダにuniformパラメータを設定するところが思ったよりやばいなぁ。単純に呼ぶ回数が多いしな。
まあこのへんは後で調整していくからいいや。
そういえばプロファイラなんだけど、Rubyに標準でついてくるプロファイラはあまりにも遅くて機能も最低限なのでruby-profをいれてみ…あれー入らねー。
調べたらリリースされてるのは1.9対応してないので、svnから拾ってくればいいらしい。
拾ってきたら入ったんだが、プロファイル出力するところでエラー出して死んでしまった。うーん、これないとゲームのプロファイル取れなくて困るんだけどなぁ。本当に必要になったらちゃんと調べて直すか。
とりあえずゲーム用に整理もある程度できたので、あとはデータのコンバート手順がちゃんとできるようにすればいいかな。1アニメーション毎にdaeファイル1つになっちゃうのは面倒なんだけど、上手くBlenderから書き出せないかなぁ。
IronRubyの0.5.0がでてたのに気づいた。あれ0.4.0はいずこへ。
起動とかコンパイルが速くなったようで何より。まあCRubyのように高速起動というわけにはいかないが、以前のように困る程遅かったりしないので満足。
これとWPFで遊んでみたいんだが、いかんせんやってる暇が無いのと、メインマシンがMacなので趣味でWindows専用のものを作ることはあんまりなさそうなんだよなぁ。MonoにWPFがあれば喜んで使いそうなんだけど。
でも仕事に使いたいとは思ってたり。仕事マシンは当然Windowsだし、GUIなツール作るのにwxRubyがなんか不安定なときもあるのでIronRubyとWPFで安心プログラミングしたい。
仕事もまだ遊んでる程暇では無いのでしばらくはいじれないか。WPFも全く触ってないレベルからだから時間かかりそうだしな。
あとXNAと組み合わせるといいかと思ったけどやっぱりWindows専用のものを作るモチベーションが無いな。360ではCompactFrameworkで動くかどうか怪しいし、動いてもCPUが貧弱なので速度的に厳しいだろう。
でもXNAのコンテントパイプラインとか作るには非常によさそうだ。あ、属性とか付けられないとダメなのかな。