2015-06-15 14 views
5

Pracuję z programem Rajawali 3D Framework i próbuję wczytać pliki .obj z karty SD. Jestem w stanie przesłać i przeanalizować plik obj po umieszczeniu tych plików (.obj, .mtl, texture.png (folder do rysowania)) w folderze raw, ale kiedy próbuję przeanalizować go z sdcard, jest napisane:Parsing .obj model z karty SD Rajawali

Oto mój kod do przesyłania plików .obj z sdcard:

private Object3D Object; 
LoaderOBJ objParser = new LoaderOBJ(this,"Load/1c_obj"); 

      try { 

       objParser.parse(); 
       Object = objParser.getParsedObject(); 
       getCurrentScene().addChild(Object); 

      } catch (ParsingException e) { 
       e.printStackTrace(); 
      } 

Logcat:

D/Rajawali﹕ Parsing: /storage/emulated/0/Load/1c_obj 
D/LoaderOBJ﹕ Found Material Lib: 1c_mtl 
D/LoaderOBJ$MaterialLib﹕ Parsing material: Texture0 
D/LoaderOBJ$MaterialLib﹕ Parsing material: Texture1 

    9578-9612/com.example.loadobj D/LoadModelFragment$LoadModelRenderer﹕ startRendering() 
    E/Rajawali﹕ [org.rajawali3d.materials.Material] Could not compile fragment shader: 
    9578-9612/com.example.loadobj E/Rajawali﹕ Shader log: Fragment shader compilation failed. 
    ERROR: 0:13: '.' : Syntax error: syntax error 
    ERROR: 1 compilation errors. No code generated. 

link postu: https://plus.google.com/111465395343320783064/posts/g19G56J3iGW

Odpowiedz

7

Jeśli urządzenie jest w stanie odczytać pliki obj z surowego folderze, który jest

LoaderOBJ objParser = new LoaderOBJ(mContext.getResources(),mTextureManager, R.raw.camero_obj); 

a nie z sdcard trzeba zrobić następujące zmiany w plikach: w pliku obj które muszą być zapisane jako _obj w sdcard (tak dla _jpg i _mtl w tym samym miejscu)

w przypadku:

mtllib 1c_mtl 

v -0.7526 14.5146 0.171602 
v -0.7922 14.5792 0.075402 
v -0.4998 14.7082 0.457802 
v -0.5409 14.7486 0.393002 
v -0.5358 14.5862 0.414902 

brzmienie pliku MTL

newmtl Texture0 
    illum 0 
    Kd 0.7 0.7 0.7 
    Ks 0 0 0 
    Ka 0 0 0 
newmtl Texture1 
    illum 0 
    Kd 0.7 0.7 0.7 
    Ks 0 0 0 
    Ka 0 0 0 
    map_Kd parse_jpg 

Pamiętaj, aby zmienić nazwę tekstury jpg do _jpg Gdzie są coraz Błąd:

ERROR: 0:13: '.' : Syntax error: syntax error

Następnie wykonaj swój kod do parsowania:

private Object3D Object; 
LoaderOBJ objParser = new LoaderOBJ(this,"Load/1c_obj"); 

      try { 

       objParser.parse(); 
       Object = objParser.getParsedObject(); 
       getCurrentScene().addChild(Object); 

      } catch (ParsingException e) { 
       e.printStackTrace(); 
      } 

I Twój błąd uzyskanie

E/Rajawali﹕ [org.rajawali3d.materials.Material] Could not compile fragment shader:

Nie można odczytać pliku tekstury z pliku materiałowego, Aby można było wykonać powyższe zmiany w pliku materiałowym.

Więcej informacji na temat niestandardowego materiału lub vertex shader podążać za Rajawail dokument i próbki

Powiązane problemy