.MQOを自力で読み込んでみる1(解析編)

「.MQOを自力で読み込んでみる1(解析編)」の編集履歴(バックアップ)一覧はこちら

.MQOを自力で読み込んでみる1(解析編)」(2010/05/30 (日) 13:48:26) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<p><strong>前回はGLMetaseqを使わせて頂きましたが、今回からは .MQO を自力で<br /> 読み込んでみたいと思います。<br /> ただ使っているだけでは理解した事にはならないので実際に解析してみましょう。<br /> まず、どのようなデータがあり、どのデータが必要となるのか、そこから探っていきたいと<br /> 思います。<br /> では、メタセコイアを起動して何もせずにいきなり名前を付けて保存したデータを見て<br /> みます。</strong></p> <p>1.MQO</p> <table border="1" cellspacing="1" cellpadding="1" width="600"><tbody><tr><td> <p><font size="2">Metasequoia Document<br /> Format Text Ver 1.0</font></p> <p><font size="2">Scene {<br />  pos 0.0000 0.0000 1500.0000<br />  lookat 0.0000 0.0000 0.0000<br />  head -0.5236<br />  pich 0.5236<br />  ortho 0<br />  zoom2 5.0000<br />  amb 0.250 0.250 0.250<br /> }<br /> Object "obj1" {<br />  depth 0<br />  folding 0<br />  scale 1.000000 1.000000 1.000000<br />  rotation 0.000000 0.000000 0.000000<br />  translation 0.000000 0.000000 0.000000<br />  visible 15<br />  locking 0<br />  shading 1<br />  facet 59.5<br />  color 0.898 0.498 0.698<br />  color_type 0<br />  vertex 0 {<br />  }<br />  face 0 {<br />  }<br /> }<br /> Eof</font></p> </td> </tr></tbody></table><p><strong>このようになりました。<br /> それでは三角ポリゴンを一枚だけ作って保存したデータを見てみます。</strong></p> <p>2.MQO</p> <table border="1" cellspacing="1" cellpadding="1" width="600"><tbody><tr><td> <p><font size="2">Metasequoia Document<br /> Format Text Ver 1.0</font></p> <p><font size="2">Scene {<br />  pos 0.0000 0.0000 1500.0000<br />  lookat 0.0000 0.0000 0.0000<br />  head -0.5236<br />  pich 0.5236<br />  ortho 0<br />  zoom2 5.0000<br />  amb 0.250 0.250 0.250<br /> }<br /> Object "obj1" {<br />  depth 0<br />  folding 0<br />  scale 1.000000 1.000000 1.000000<br />  rotation 0.000000 0.000000 0.000000<br />  translation 0.000000 0.000000 0.000000<br />  visible 15<br />  locking 0<br />  shading 1<br />  facet 59.5<br />  color 0.898 0.498 0.698<br />  color_type 0<br />  vertex 3 {<br />   -100.9615 75.5277 7.9388<br />   76.0882 55.9196 -81.2090<br />   14.5374 -91.8674 52.8524<br />  }<br />  face 1 {<br />   3 V(0 1 2)<br />  }<br /> }<br /> Eof</font></p> </td> </tr></tbody></table><p><strong>このようになりました。<br /> なにやら vertex と face の辺りが変化していますね。<br /> この vertex というのは頂点情報の集まりです。<br /> そして face は面を、どの頂点を使って作るかという情報です。<br /> それでは、マテリアルに赤い色を設定して名前を付けて保存してみます。</strong></p> <p>3.MQO</p> <table border="1" cellspacing="1" cellpadding="1" width="600"><tbody><tr><td> <p><font size="2">Metasequoia Document<br /> Format Text Ver 1.0</font></p> <p><font size="2">Scene {<br />  pos 0.0000 0.0000 1500.0000<br />  lookat 0.0000 0.0000 0.0000<br />  head -0.5236<br />  pich 0.5236<br />  ortho 0<br />  zoom2 5.0000<br />  amb 0.250 0.250 0.250<br /> }<br /> Material 1 {<br />  "mat1" shader(3) col(1.000 0.000 0.000 1.000) dif(0.800) amb(0.600) emi(0.000) spc(0.000) power(5.00)<br /> }<br /> Object "obj1" {<br />  depth 0<br />  folding 0<br />  scale 1.000000 1.000000 1.000000<br />  rotation 0.000000 0.000000 0.000000<br />  translation 0.000000 0.000000 0.000000<br />  visible 15<br />  locking 0<br />  shading 1<br />  facet 59.5<br />  color 0.898 0.498 0.698<br />  color_type 0<br />  vertex 3 {<br />   -100.9615 75.5277 7.9388<br />   76.0882 55.9196 -81.2090<br />   14.5374 -91.8674 52.8524<br />  }<br />  face 1 {<br />   3 V(0 1 2) M(0)<br />  }<br /> }<br /> Eof</font></p> </td> </tr></tbody></table><p><strong>このようになりました。<br /> Material というチャンクが追加されていますね。<br /> そして face の所に M(0) が追加されています。<br /> それではテクスチャとUVを設定して保存してみます。</strong></p> <p>4.MQO</p> <table border="1" cellspacing="1" cellpadding="1" width="600"><tbody><tr><td> <p><font size="2">Metasequoia Document<br /> Format Text Ver 1.0</font></p> <p><font size="2">Scene {<br />  pos 0.0000 0.0000 1500.0000<br />  lookat 0.0000 0.0000 0.0000<br />  head -0.3136<br />  pich 0.3836<br />  ortho 0<br />  zoom2 5.0000<br />  amb 0.250 0.250 0.250<br /> }<br /> Material 1 {<br />  "mat1" shader(3) col(1.000 0.000 0.000 1.000) dif(0.800) amb(0.600) emi(0.000) spc(0.000) power(5.00) tex("test.bmp")<br /> }<br /> Object "obj1" {<br />  depth 0<br />  folding 0<br />  scale 1.000000 1.000000 1.000000<br />  rotation 0.000000 0.000000 0.000000<br />  translation 0.000000 0.000000 0.000000<br />  visible 15<br />  locking 0<br />  shading 1<br />  facet 59.5<br />  color 0.898 0.498 0.698<br />  color_type 0<br />  vertex 3 {<br />   -100.9615 75.5277 7.9388<br />   76.0882 55.9196 -81.2090<br />   14.5374 -91.8674 52.8524<br />  }<br />  face 1 {<br />   3 V(0 1 2) M(0) UV(-0.00481 0.12236 0.88044 0.22040 0.57269 0.95934)<br />  }<br /> }<br /> Eof</font></p> </td> </tr></tbody></table><p><strong>こんなふうになりました。<br /> tex("test.bmp") と UV(-0.00481 0.12236 0.88044 0.22040 0.57269 0.95934) が<br /> 追加されていますね。<br /> ここまでの実験で必要なデータとそうでないデータが大体わかったと思います。<br /> まず、最初の方にある Scene チャンクは、シーン全体の情報なので読み込まなくても<br /> 良いです。<br /> それから Object チャンクの vertex と face 以外は必要なさそうです。<br /> それから、鏡面オブジェクトやメタボールなども今回の読み込みでは使いません。<br /> では、取りあえず、必要なデータがわかったので次回、.MQOを自力で読み込んでみる(読み込み編)で<br /> 読み込んで配列に格納してみたいと思います。</strong></p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p>
<p><strong>前回はGLMetaseqを使わせて頂きましたが、今回からは .MQO を自力で<br /> 読み込んでみたいと思います。<br /> ただ使っているだけでは理解した事にはならないので実際に解析してみましょう。<br /> まず、どのようなデータがあり、どのデータが必要となるのか、そこから探っていきたいと<br /> 思います。<br /> では、メタセコイアを起動して何もせずにいきなり名前を付けて保存したデータを見て<br /> みます。</strong></p> <p>1.MQO</p> <table border="1" cellspacing="1" cellpadding="1" width="600"><tbody><tr><td> <p><font size="2">Metasequoia Document<br /> Format Text Ver 1.0</font></p> <p><font size="2">Scene {<br />  pos 0.0000 0.0000 1500.0000<br />  lookat 0.0000 0.0000 0.0000<br />  head -0.5236<br />  pich 0.5236<br />  ortho 0<br />  zoom2 5.0000<br />  amb 0.250 0.250 0.250<br /> }<br /> Object "obj1" {<br />  depth 0<br />  folding 0<br />  scale 1.000000 1.000000 1.000000<br />  rotation 0.000000 0.000000 0.000000<br />  translation 0.000000 0.000000 0.000000<br />  visible 15<br />  locking 0<br />  shading 1<br />  facet 59.5<br />  color 0.898 0.498 0.698<br />  color_type 0<br />  vertex 0 {<br />  }<br />  face 0 {<br />  }<br /> }<br /> Eof</font></p> </td> </tr></tbody></table><p><strong>このようになりました。<br /> それでは三角ポリゴンを一枚だけ作って保存したデータを見てみます。</strong></p> <p>2.MQO</p> <table border="1" cellspacing="1" cellpadding="1" width="600"><tbody><tr><td> <p><font size="2">Metasequoia Document<br /> Format Text Ver 1.0</font></p> <p><font size="2">Scene {<br />  pos 0.0000 0.0000 1500.0000<br />  lookat 0.0000 0.0000 0.0000<br />  head -0.5236<br />  pich 0.5236<br />  ortho 0<br />  zoom2 5.0000<br />  amb 0.250 0.250 0.250<br /> }<br /> Object "obj1" {<br />  depth 0<br />  folding 0<br />  scale 1.000000 1.000000 1.000000<br />  rotation 0.000000 0.000000 0.000000<br />  translation 0.000000 0.000000 0.000000<br />  visible 15<br />  locking 0<br />  shading 1<br />  facet 59.5<br />  color 0.898 0.498 0.698<br />  color_type 0<br />  vertex 3 {<br />   -100.9615 75.5277 7.9388<br />   76.0882 55.9196 -81.2090<br />   14.5374 -91.8674 52.8524<br />  }<br />  face 1 {<br />   3 V(0 1 2)<br />  }<br /> }<br /> Eof</font></p> </td> </tr></tbody></table><p><strong>このようになりました。<br /> なにやら vertex と face の辺りが変化していますね。<br /> この vertex というのは頂点情報の集まりです。<br /> そして face は面を、どの頂点を使って作るかという情報です。<br /> それでは、マテリアルに赤い色を設定して名前を付けて保存してみます。</strong></p> <p>3.MQO</p> <table border="1" cellspacing="1" cellpadding="1" width="600"><tbody><tr><td> <p><font size="2">Metasequoia Document<br /> Format Text Ver 1.0</font></p> <p><font size="2">Scene {<br />  pos 0.0000 0.0000 1500.0000<br />  lookat 0.0000 0.0000 0.0000<br />  head -0.5236<br />  pich 0.5236<br />  ortho 0<br />  zoom2 5.0000<br />  amb 0.250 0.250 0.250<br /> }<br /> Material 1 {<br />  "mat1" shader(3) col(1.000 0.000 0.000 1.000) dif(0.800) amb(0.600) emi(0.000) spc(0.000) power(5.00)<br /> }<br /> Object "obj1" {<br />  depth 0<br />  folding 0<br />  scale 1.000000 1.000000 1.000000<br />  rotation 0.000000 0.000000 0.000000<br />  translation 0.000000 0.000000 0.000000<br />  visible 15<br />  locking 0<br />  shading 1<br />  facet 59.5<br />  color 0.898 0.498 0.698<br />  color_type 0<br />  vertex 3 {<br />   -100.9615 75.5277 7.9388<br />   76.0882 55.9196 -81.2090<br />   14.5374 -91.8674 52.8524<br />  }<br />  face 1 {<br />   3 V(0 1 2) M(0)<br />  }<br /> }<br /> Eof</font></p> </td> </tr></tbody></table><p><strong>このようになりました。<br /> Material というチャンクが追加されていますね。<br /> そして face の所に M(0) が追加されています。<br /> それではテクスチャとUVを設定して保存してみます。</strong></p> <p>4.MQO</p> <table border="1" cellspacing="1" cellpadding="1" width="600"><tbody><tr><td> <p><font size="2">Metasequoia Document<br /> Format Text Ver 1.0</font></p> <p><font size="2">Scene {<br />  pos 0.0000 0.0000 1500.0000<br />  lookat 0.0000 0.0000 0.0000<br />  head -0.3136<br />  pich 0.3836<br />  ortho 0<br />  zoom2 5.0000<br />  amb 0.250 0.250 0.250<br /> }<br /> Material 1 {<br />  "mat1" shader(3) col(1.000 0.000 0.000 1.000) dif(0.800) amb(0.600) emi(0.000) spc(0.000) power(5.00) tex("test.bmp")<br /> }<br /> Object "obj1" {<br />  depth 0<br />  folding 0<br />  scale 1.000000 1.000000 1.000000<br />  rotation 0.000000 0.000000 0.000000<br />  translation 0.000000 0.000000 0.000000<br />  visible 15<br />  locking 0<br />  shading 1<br />  facet 59.5<br />  color 0.898 0.498 0.698<br />  color_type 0<br />  vertex 3 {<br />   -100.9615 75.5277 7.9388<br />   76.0882 55.9196 -81.2090<br />   14.5374 -91.8674 52.8524<br />  }<br />  face 1 {<br />   3 V(0 1 2) M(0) UV(-0.00481 0.12236 0.88044 0.22040 0.57269 0.95934)<br />  }<br /> }<br /> Eof</font></p> </td> </tr></tbody></table><p><strong>こんなふうになりました。<br /> tex("test.bmp") と UV(-0.00481 0.12236 0.88044 0.22040 0.57269 0.95934) が<br /> 追加されていますね。<br /> ここまでの実験で必要なデータとそうでないデータが大体わかったと思います。<br /> まず、最初の方にある Scene チャンクは、シーン全体の情報なので読み込まなくても<br /> 良いです。<br /> それから Object チャンクの vertex と face 以外は必要なさそうです。<br /> それから、鏡面オブジェクトやメタボールなども今回の読み込みでは使いません。<br /> では、取りあえず、必要なデータがわかったので次回、.MQOを自力で読み込んでみる(読み込み編)で<br /> 読み込んで配列に格納してみたいと思います。<br /> 尚、詳しいデータのリファレンスはこちらにあります。↓</strong><br /><a href="http://www.metaseq.net/metaseq/format.html">http://www.metaseq.net/metaseq/format.html</a></p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p>

表示オプション

横に並べて表示:
変化行の前後のみ表示: