IKD備忘録WebGLモデル読まないと面白く無いよね:サンプルプログラムこの章で説明したJSON化したモデルデータを読み込むんでcanvasに描画するHTMLプログラムです。確認したい方アーカイブを展開すると「bin」「resource」「src」という3つのフォルダが作成されます。手っ取り早くWebGLでの描画を確認してみたい方はbin/loadmodel.htmlをChrome等のWebGLをサポートしているブラウザで開いてみて下さい。この時何も出ない時はクロスドメインの問題に引っかかっている可能性があります。その場合は最初にブラウザを開いてから上のHTMLをドロップしてみて下さい。JSONモデルコンバータを試してみたい方binフォルダ内にはconverter/MeshConverter.exeという今回説明した範囲のXファイル→JSONモデルを行ってくれるコンバータが入っています。このコンバータはコンソールで実行する事を想定しています。[出力ファイルパス]というコマンドを打ち込むとコンバートしてくれます。cube2.jsonとすると今回のサンプルで使用しているcube2.jsonモデルがカレントフォルダに出力されます。テキストファイルなので適当なテキストエディタで開いて確認できます。コンバータをビルドしたい方srcフォルダにはコンバータのソースが入っています。今回はVisualStudio2008で実装しましたが、他のVS環境でもビルド出来ると思います。ビルドこれで.exeが出来あがりますので、あとは上で説明している手順でコンバートが回ると思います。Xファイルのバリエーションによってはうまくいかない場合もありますのでご注意ください。クラスについてソースコードにあるOX::spクラスはスマートポインタクラスです。メモリの自動解放を行ってくれる便利なクラスです(^-^)。OX::Hashクラスはハッシュテーブルを作成してくれるクラスです。整数(int)、浮動小数点(float)、文字列(std::string)、それらの配列(std::vector<***>)、そしてHashそのものを格納できます。保持している物はHashがスコープから外れた時に自動的に解放されます。他人がHashを持っている場合は参照カウンタが減るだけで解放はされません(このためにスマートポインタが使われています)。Hashの循環保持をした場合はメモリがリークするので厳禁です!OX::JsonクラスはHashテーブルをJSON文字列化してくれるヘルパークラスです。JSONに完全に準拠はしていませんが、今回のサンプルの範囲であればJavaScriptで読み込み可能なJSON文字列を作ってくれます。文字列を格納する時にシングルクォーテーションが入ると多分JavaScript側のパーサーで失敗しますのでご注意下さい。