OpenGLで遊ぼう4 -glm.cをいじる1-
ほぼネタ化というか、ひよこいじめ化しつつあるOpenGLであそぼう企画。
OpenGLで遊ぼう3 -ポリゴンを表示する- - 毛の生えたようなもののつづきです。
もはや、説明するのも面倒になりいろいろな前提条件を書いていないので、メモ用紙同然。全部解決したらまとめて書こうと思います。
まとめはこちら:OpenGLで遊ぼう6 -まとめ!- - 毛の生えたようなもの
どうやらBlender氏は何も悪いことをしていないようです
.objが読み込めなくて,という話を研究室でしたらとある先輩に別のビューア製作サイトを教えていただきました。(いま手元に教えていただいたURLがないので、後日UPします。)
その方の製作したビューアでみてみるとひよこ氏.objは正常に表示されている…
どうやらBlender氏は正しい.objファイルを出力しているようです。
となると悪さをしているのはサンプルコードのglm.cということに。
このglm.cで.objを読み込み、内容を解析して一旦構造体に格納。その後描画関数にわたしたりあーしたりこうしたりしている。このglm.cに構造体の内容を再び.obj形式に出力する関数があったのでそれで.obj読み込み→.obj出力→その.obj出力を読み込み→…すると・・・
↓
↓
↓
原因が気になりだす
だんだん色がずれていって最後に白色化するらしい事が分かりました。回を重ねるごとにどうやらマテリアル(色など)の情報が欠落して行くようです。
何度出力と読み込みを繰り返しても、形は変わらない事、色情報を面のグループに対して一括に貼っていることを考えると、どうやら面を張る情報から読み取った情報を構造体に格納・出力するあたりに問題がありそう。途中で立つべきフラグがたっていないところもありましたし。
もうここまでやったんだから徹底的にバグとろうじゃない、glm.c。
折れそうな心で明日も頑張ります。*1
*1:万能デバッガが登場してくれるに違いない