単純な3Dモデルを作成して(たとえば3DS MAXで)、Androidにインポートすることは可能ですか?
それが私が得た場所です:
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のデフォルトは反時計回りだからです。
可能になるはずです。ファイルをプログラムのデータファイルとして使用できます(そのため、エミュレータにプッシュされ、実際のデバイスにインストールするためにパッケージ化されます)。次に、JavaでAndroidとGLESライブラリを使用してモデルを表示します。
ただし、これに関する特定のリソースはおそらく制限されています。 3dsは所有権の形式であるため、サードパーティのローダーは供給不足で、ほとんどがリバースエンジニアリングされています。他のフォーマット(ブレンダーやミルクシェイプなど)はよりオープンであり、Javaでかなり簡単にローダーの記述に関する詳細を見つけることができるはずです。
Android向けにmin3dを試しましたか? 3ds max、obj、md2モデルをサポートしています。
Androidについて具体的にはわかりませんが、一般的に言えば、モデルから必要なフォーマットを手動で書き出す3DS Maxのスクリプトが必要です。
Androidかどうかにかかわらず、存在するかどうかはわかりません。
3D Object Converterでもこれを行うことができます
このツールは、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コードで置き換えます。
追伸このツールは無料ではなく、30日間の試用期間のみ使用できます。ただし、この期間は「c」コードとxmlコンバーターを使用できます。