質問

単純な3Dモデルを作成して(たとえば3DS MAXで)、Androidにインポートすることはできますか?

役に立ちましたか?

解決

それが私が到達した場所です:

  • 開始点としてGoogleのAPIDemosを使用しました-そこには回転するキューブがあり、それぞれが頂点とインデックスの2つの配列で指定されています。
  • Blenderを使用してモデルを構築し、OFFファイルとしてエクスポートしました。これは、すべての頂点をリストし、これらの頂点(インデックス付きジオメトリ)に関して面するテキストファイルです
  • 次に、これをオフにして、配列を含む2つのXML(頂点用とインデックス用)として書き込む単純なC ++アプリを作成しました
  • これらのXMLファイルはres / valuesにコピーされ、この方法で、含まれるデータを次のように配列に割り当てることができます。
    int vertices [] = context.getResources()。getIntArray(R.array.vertices);
  • ここで描画する面の数も手動で変更する必要があります: gl.glDrawElements(GL10.GL_TRIANGLES、212 * 6、GL10.GL_UNSIGNED_SHORT、mIndexBuffer); -あなたはそれを見つけることができますOFFファイルの上部にある番号(この場合は212)

ここで、このソリューションを使用する私のプロジェクトページを見つけることができます。 Githubプロジェクト> vsiogap3d

他のヒント

ASE形式にエクスポートできます。 ASEから、手動またはプログラムでコードに変換できます。 Androidの頂点配列には頂点が、インデックスには面が必要です。 設定する必要があることを忘れないでください

gl.glFrontFace(GL10.GL_CCW);

3ds maxのデフォルトは反時計回りであるため。

それは可能であるはずです。ファイルをプログラムのデータファイルとして使用できます(そのため、エミュレータにプッシュされ、実際のデバイスにインストールするためにパッケージ化されます)。その後、AndroidおよびGLESライブラリを使用してモデルローダーとビューアをJavaで記述し、モデルを表示できます。

これに関する特定のリソースはおそらく制限されています。 3dsは所有権の形式であるため、サードパーティのローダーは供給不足で、ほとんどがリバースエンジニアリングされています。他の形式(ブレンダーやミルクシェイプなど)はよりオープンであり、それらのローダーをJavaで簡単に記述する詳細を見つけることができるはずです。

Android向けにmin3dを試しましたか? 3ds max、obj、md2モデルをサポートしています。

Androidについて具体的にはわかりませんが、一般的に言えば、モデルから必要な書式を手動で書き出す3DS Maxのスクリプトが必要です。

Androidに存在するかどうかはわかりません。

3Dオブジェクトコンバーター

でもこれを行うことができます

http://web.t-online.hu/karpo/

このツールは、3dsオブジェクトをtext \ xml形式またはcコードに変換できます。

open gl 'c'出力の例:

glDisable(GL_TEXTURE_2D);
glEnable(GL_LIGHTING);
glEnable(GL_NORMALIZE);

GLfloat Material_1[] = { 0.498039f, 0.498039f, 0.498039f, 1.000000f };

glBegin(GL_TRIANGLES);

  glMaterialfv(GL_FRONT,GL_DIFFUSE,Material_1
  glNormal3d(0.452267,0.000000,0.891883);
  glVertex3d(5.108326,1.737655,2.650969);
  glVertex3d(9.124107,-0.002484,0.614596);
  glVertex3d(9.124107,4.039649,0.614596);

glEnd();

または「c」出力

Point3 Object1_vertex[] = {
       {5.108326,1.737655,2.650969},
       {9.124107,-0.002484,0.614596},
       {9.124107,4.039649,0.614596}};
long Object1_face[] = {
       3,0,1,2,
       3,3,4,5
       3,6,3,5};

このコードの一部をJavaコードに置き換えることができます。

P.s。このツールは無料ではなく、30日間の試用期間のみ使用できます。ただし、この期間は「c」コードとXMLコンバーターを使用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top