No.9

作業の時間がだんだん取れなくなってきてますが、
モデルコンバータとモデルフォーマットの実装は何となくしていってます。


自分用のメモとして困ったことを一つ。
今俺俺フォーマットver.0.01を作成中ですがバイナリデータの扱いに関して。
モデルバイナリ用構造体を用意しそこに読み込んだバイナリを流し込んでいるのですが、
そのままキャストして頂点などを取り出そうとし、
stuct ModelBinary
{
void* data
};
ModelBinary* modelBinary = (ModelBinary*)binaryPtr;
のようなことをしました。
すると、dataにはバイナリの最初のsizeof(void*)分のデータが入ってますよね?
このあたりがそもそもの実装ミスで、きちんとバイナリを構造体にキャストする処理を挟む必要があった訳です。
そのあと無理矢理検証だけは済ませたかったのでアホみたいなキャストを繰り返して
テストしましたが、絶対に修正する必要があります。
あのライブラリーのあのキャスト処理はそういうことだったかと今更理解できました。
ModelBinary* modelBinary = ModelFactory::Create(binaryPtr);
てきな風に変更します。モデルデータ構造体も全く別のものにします。
この辺は今週末に一気に改修していく予定です。


バイナリの扱いを全くわかってないなという一件でした。
なさけない。