2010-07-02 6 views
28

Es scheint eine ganze Reihe von OBJ-Mesh-Datei-Lader gibt, die Menschen für den Einsatz auf der Android-Plattform entwickelt haben. Ich frage mich, ob jemand Erfahrungen mit diesen hat und kann eine Empfehlung geben, auf der man am besten für sie zu arbeiten scheint.Android OpenGL .OBJ Datei-Lader

Hier sind meine Kriterien:

  • Leicht (kleine Dateigröße),
  • optimiert für die Geschwindigkeit,
  • einfach zu implementieren,
  • bietet eine Art von Textur-Mapping-Unterstützung (nicht sicher, ob Ich brauche das - bin nicht weit genug in meiner Kodierung gekommen, um zu wissen, ob ich dafür eine Bibliothek benötige oder ob OpenGL ES in der Lage sein wird, all die Arbeit zu verrichten, die ich hier brauche) und
  • Kann in verwendet werden Android-Apps, die s sind alt kommerziell.

Hier sind ein paar der Bibliotheken, die ich gefunden habe.

Ich bin auch offen zu hören, über andere nicht in dieser Liste aufgeführt gefunden. Vielen Dank!

+0

Vielen Dank, Ihre Frage ist sehr hilfreich, ich habe über 3D-Modellierung Frameworks für Android kennen gelernt. Ich werde mit "Android-GL" gehen – swiftBoy

Antwort

21

Sie haben dies eine Weile zurück gefragt, aber ich habe eine gute Lösung, wenn Sie noch suchen.

Anstatt eine Obj-Datei zu laden, können Sie sie einfach in Arrays für die Eckpunkte, Normalen und Texturkoordinaten konvertieren. Es gibt ein Tool, das Obj-Dateien in c-Header-Dateien konvertiert. Sie können die Ausgabe später in Java konvertieren. Es sollte nicht schwer sein.

http://www.heikobehrens.net/2009/08/27/obj2opengl/

Diese Lösung ist einfach, wird nicht die Header-Dateien viel Platz im Quellcode als die OBJ-Dateien hinzufügen und die Daten werden kompakter sein, wenn zusammengestellt, es ist sehr schnell, da Sie die Daten dort bereit zu machen haben Sofort kann es Texturkoordinaten konvertieren und Sie brauchen sich keine Sorgen zu machen, es für Ihre kommerziellen Produkte zu verwenden.

+0

Ich weiß, das ist wirklich alt, aber ich kann nicht scheinen, einen Weg zu finden, um die c-Header-Datei mit Java arbeiten zu konvertieren. Wie machst du das? Der Blogbeitrag wurde mit Blick auf das iPhone geschrieben. –

+1

Sie müssten sie selbst konvertieren. Es sollte einfach genug sein, was zu tun ist. Kopieren Sie einfach die Daten von den C-Arrays in Java-Arrays. –

+0

@Matthew Mitchell: Ich habe die C-Arrays wie erwähnt in Java-Arrays generiert. Können Sie mir einige Codes geben, um diese Java-Arrays zu laden und die Obj-Datei im GLsurfaceview anzuzeigen. – Manoj

10

Ich weiß, das ist eine alte Frage, aber ich habe einige Probleme festgestellt, um einen guten OBJ-Lader für Android zu finden.

versuchte ich fast alle Lösungen

  • Min3D vorgeschlagen, die ziemlich alt (letzte Revision ist ab 2011)
  • Rajawali, die eine Gabel von min3D
  • Libgdx zu sein scheint, die ein Spiel-Engine ist
  • JPCT-AE eine 3D-Engine für android

Das einzige, das war JPCT-AE nicht zu kompliziert und arbeitete, war, das kann hier gefunden werden: http://www.jpct.net/jpct-ae/

Es ermöglicht Parsing OBJ-Dateien und lädt die Texturen aus der zugehörigen MTL-Datei ohne jedes Problem. Außerdem ist die Dokumentation wirklich beschreibend im Vergleich zu anderen, und es gibt ein Forum mit vielen beantworteten Fragen.