3D

unittest重要w

やっとmkmの読み込み処理が完成した。 しかし、恐ろしい試練だった。 要は、クォータニオンを右からかけるか左からかけるかという 一貫性の問題だったわけだがこれを修正するのがえらく難航。 DirectXとかを使っていれば多分起きない問題だが、 自前で数学ラ…

掌性が違う

D3DXQuaternionRotationAxisは関係なかった。 180度も関係ない。 うまくいかない原因は掌性の食い違いにありそうだ。 mqoが右手系なんで迂闊にもmkmも同じ掌性だとばかり思っていたがそうではないようだ。 mikotoはたぶんDirectXで書いているので左手系を使…

180度の回転がうまくいかない

mikoto形式のボーン読み込みは概ねできたのだが、 ボーンの第3の点(H点)が親と反対側についたときに生じる Z軸に対する180度回転を含む回転がうまく解決できない。 mikotoに記述されているクォータニオンと違う値になって あらぬ方向に曲がってしまう。 180…

mikotoのキーフレーム復元に成功

クォータニオンに不慣れなのもあって大きく手間取ったが なんとか前進。 まだ、浮動ボーンの扱いなどにおかしなところがあるようだが、mikotoフォーマットについて忘れないうちにメモしておく。 mkmファイルのQuaternionに記録されているキーフレーム値 # 例…

頓挫中・・・

うぅむ。 勘違いしていそうなところがひとつわかった。 進めるかもしれん。

スケルトンのツリー表示

モーションの続きを進める前にリファクタリングと表示強化。ソースはこちら。 http://github.com/ousttrue/kugutsu/tree/masterwxWidgetsなのでビルドが面倒だけども

骨回転練習

功夫が不足したのでちょっと練習。 シンプルに再帰で実装。 一つ上までの累積クォータニオンとカレントのクォータニオンの取り回しが肝の様子。 ボーンひとつの最小限のデータは、 ひとつ上のローカル座標でのボーンの始点とボーン自身の回転情報っぽい。 参…

mkm形式の初期値

mkmの読み込み結果からクォータニオン適用をはじめようと思ったのだが まだ仕様が不明確な要素があった。 まず、Quaortenionの4つの要素が実部->虚部の順に並んでいるのか虚部->実部の順に並んでいるのかわからん。 試しに二つの棒をつないだだけのモデルを…

ボーンの再構成まで実装

ボーンオブジェクトからのツリー構造の再構成に成功した。 これを適当なポリゴン(いわゆるボーン風味のもの)で実体化させれば mqoからのボーン読み込みという段階は完了。 bone kosi momo[] hiza[] sune[] kurubusi[] asi[] tumasaki[] momo[] hiza[] sune[]…

mkmのモーション読み込み設計

前回まででボーン読み込みを実装し終わったのでようやく本題のモーション実装に入る。まず、mkmのパースと格納。 ボーン名とフレーム数をキーにボーンの回転情報をデータとしてフラットにベクタに突っ込むとしよう。 バイナリサーチできるように名前とフレー…

オブジェクトツリーとマテリアルのリスト実装

ハードディスク内に眠っていたモデルひととおりを落ちずに 読み込めるようにした。 やっつけだけどマテリアルリストとオブジェクト階層を実装。 次回からmkm解読に入る。 今チラッと見たらQuaternionとか書いてあって難解そうに 見えるが果たしてどうか。 モ…

mqo読み込みを実装

とりあえずmqoの読み込みを実装した。 思ったより手間取ったが、ここまではやったことのあることばかりなのでハマる要素は特にない。 実際は、若干ハマったのだがw 中でも、テクスチャの取り回しはもう少し整理する必要がある。 mqoの中にはSJIS固定で文字列…

wxWidgetsのOpenGL雛形

次なる3Dプログラミングのテーマを決めた。 ボーンとかモーションとかそっち方面。 最近流行ってきている様子のmqo+keynoteによるmqoのmikoto方式のデータを 扱えるようにしてみたい。 モデルデータを公開されている人もいるので実験してみるのにも 楽しげだ…