うーん、OpenGL形式のモデルデータへどうすれば変換できるんだろう [Cheetah3D]
さて、自作モデルをARtoolkitで使うにはモデルデータをOpenGL形式に
変換する必要があるということだけど、どうすればいいのかな。
手持ちのツールでゴソゴソしているとCheetah3DからCのヘッダーファイル形式
での書き出しができることがわかった。
書き出すとこんな感じのデータができる
// Headerfile *.h (generated by Cheetah3D)
//
// There are the following name conventions:
// NAME =name of the object in Cheetah3D. Caution!! Avoid giving two objects the same name
// NAME_vertex =float array which contains the vertex,normal and uvcoord data
// NAME_index =int array which contains the polygon index data
// NAME_vertexcount =number of vertices
// NAME_polygoncount =number of triangles
//
// The vertex data is saved in the following format:
// u0,v0,normalx0,normaly0,normalz0,x0,y0,z0
// u1,v1,normalx1,normaly1,normalz1,x1,y1,z1
// u2,v2,normalx2,normaly2,normalz2,x2,y2,z2
// ...
// You can draw the mesh the following way:
// glEnableClientState(GL_INDEX_ARRAY);
// glEnableClientState(GL_NORMAL_ARRAY);
// glEnableClientState(GL_VERTEX_ARRAY);
// glEnableClientState(GL_TEXTURE_COORD_ARRAY);
// glInterleavedArrays(GL_T2F_N3F_V3F,0,NAME_vertex);
// glDrawElements(GL_TRIANGLES,NAME_polygoncount*3,GL_UNSIGNED_INT,NAME_index);
//
#define Plane_vertexcount 4
#define Plane_polygoncount 2
これ以降は実際のポイントの座標なんかが羅列されている。
もしかして、You can draw the mesh the following wayのあとに
glっていっぱい記載してあるからこのデータを使えばなんとか
なるのかな。
まずは、OpenGLのオブジェクトの指定方法なんかを勉強しなきゃいけなさそう。
あ、それとCなんかも本は持ってるけど・・・読まなきゃなぁ。
う・・・・・・ここで挫折かも
こんばんわ。
私もこれから DirectX,OpenGL周りは勉強していくつもりなので、ファイルの内容について何も言えないのですが、別途必要な処理、ライティングとか移動とか回転とかの処理を用意すれば、このファイルの頂点情報を基に表示できそうな感じ(根拠なしです)。
というか、OpenGL形式向けのヘッダ情報を吐きだしてくれるのがすごいなと思いました。
※ 誰かが obj形式や fbxとかの汎用ルーチンを作ってくれていると嬉しいですね。
立方体を表示して終わりというのは悲しいかも。
この暗号(^-^;が理解できるようになったら、アドバイスできるかもしれません。
WINの場合は Metasequoia形式を扱う際のヘッダファイルがソース付きで提供されているので、理解までには少し楽かもしれません。
by くろぬこ (2008-01-09 01:33)
おはようございます。
なんだか、それっぽいファイルが書き出されたのですが
基本がわかってないから理解ができないんです。
こりゃ、真面目に勉強しないと理解でき無さそうです。
メカ屋には敷居が高すぎます。(Q_Q)↓
by ひーちー (2008-01-09 07:16)