Existuje způsob, jak importovat 3D model do Androidu?

hlasů
49

Je možné vytvořit jednoduchý 3D model (například v 3ds max) a poté jej importovat na Android?

Položena 15/10/2008 v 12:17
zdroj uživatelem
V jiných jazycích...                            


6 odpovědí

hlasů
34

Že je místo, kde jsem se dostal k:

  • Použil jsem APIDemos společnosti Google jako výchozí bod - tam jsou rotující kostky tam, každý určený dvou matic: vrcholy a indexy.
  • Mám stavět můj model pomocí Blender a exportovat jako soubor OFF - to je textový soubor, který obsahuje všechny vrcholy a pak čelí, pokud jde o těchto vrcholů (indexované geometrii)
  • Pak jsem vytvořil jednoduchý C ++ aplikace, který bude mít tuto OFF a zapíše jej jako dvě XMLs obsahující pole (jeden pro vrcholy a jeden pro indexy)
  • Tyto XML soubory jsou potom zkopírovány do RES / hodnot, a to tak, jak jsem je možné přiřadit data, která obsahují na polích, jako je tento:
    int vertices[] = context.getResources().getIntArray(R.array.vertices);
  • Také musím ručně změnit počet ploch, které mají být vypracovány zde: gl.glDrawElements(GL10.GL_TRIANGLES, 212*6, GL10.GL_UNSIGNED_SHORT, mIndexBuffer);- můžete zjistit, že číslo (212 v tomto případě) v horní části souboru OFF

Zde si můžete najít svou stránku projektu, který používá toto řešení: Projekt Github> vsiogap3d

Odpovězeno 12/04/2009 v 18:35
zdroj uživatelem

hlasů
11

můžete exportovat do formátu ASE. od ASE, můžete ručně nebo programově převést jej do svého kódu. Budete muset vrcholu na vrcholech pole a plochy pro indexy v Android. nezapomeňte je třeba nastavit

gl.glFrontFace(GL10.GL_CCW);

protože 3ds max default je proti směru hodinových ručiček.

Odpovězeno 12/04/2009 v 16:19
zdroj uživatelem

hlasů
5

Mělo by být možné. Můžete mít soubor jako datový soubor s vaším programem (a jako takový bude nasunout emulátoru a balené pro montáž na skutečném zařízení). Pak můžete napsat modelovou nakladač a prohlížeč v Javě pomocí knihovny Android a GLES zobrazit model.

Konkrétní prostředky na to jsou pravděpodobně omezené ačkoli. 3ds je formát proprietry tak 3. stran nakladače jsou v shortish dodávek a hlavně reverzní inženýrství. Jiné formáty (například mixéru nebo Milkshape) jsou mnohem otevřenější a vy byste měli být schopni najít informace o psaní nakladač pro ně v Javě poměrně snadno.

Odpovězeno 15/10/2008 v 12:24
zdroj uživatelem

hlasů
4

Už jste vyzkoušeli min3d pro android? Podporuje 3ds Max obj a MD2 modelů.

Odpovězeno 26/04/2012 v 10:47
zdroj uživatelem

hlasů
3

Nejste si jisti, o Androidu konkrétně, ale obecně řečeno je potřeba skript v 3DS Max, který ručně píše se formátování budete potřebovat z modelu.

K otázce, zda existuje jeden pro Android, nebo ne, nevím.

Odpovězeno 15/10/2008 v 12:20
zdroj uživatelem

hlasů
2

To lze provést také s 3D objektů Converter

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

Tento nástroj lze převést 3ds námitky proti textu \ xml formátu nebo c kódem.

Příklad otevřené gl výstupu ‚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();

nebo ‚c‘ výstup

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};

Pak stačí vyměnit části tohoto kódu Java kódu.

Ps Tento nástroj není zdarma a můžete ji použít pouze pro 30-ti denní zkušební doby. Ale ‚c‘ kód a XML měniče je přístupná pro toto období.

Odpovězeno 26/09/2012 v 23:40
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more