2015-10-24 7 views
11

Ich verwende die OpenGL-Bibliothek Rajawali3D, um meine Modelle anzuzeigen. Was ich gerne wissen würde ist, wie kann ich eine Textur von meinem Server basierend auf dem angemeldeten Benutzer laden? Ich habe das ganze Internet durchsucht und versucht, dies monatelang ohne Erfolg herauszufinden. Ich habe diese Website gefunden, auf der erklärt wird, wie man eine Textur aus einer nicht-lokalen Quelle lädt, aber als ich es ausprobiert habe, hat es nicht mit Rajawali funktioniert. Irgendwelche Vorschläge oder Beispiele würden sehr geschätzt.Android OpenGL Textur von nicht-lokalen Quelle mit Rajawali3D?

Hier ist die Website, die ich verwenden wollte: texture from web

+0

Sie sollten eine Textur wie jede App herunterladen können würde ein Bild herunterladen. Ich würde zuerst mit dem Versuch beginnen, die Textur/das Bild zum lokalen Speicher zu downloaden, bevor es in eine Bitmap umgewandelt wird. Es gibt Beispiele zum Laden von Texturen aus Bitmap in https://github.com/Rajawali/RajawaliExamples –

Antwort

2

ich mit Rajawali nicht vertraut bin, aber ich habe es einfach aus, ist es ziemlich einfach, scheint eine Remote-Textur zu laden und auf ein Modell anwenden.

Ich nehme an, dass Sie Ihr 3D-Modell geladen haben und es gut zeigen können. Wenn ja, sollten Sie die folgenden grundlegenden Schritte unternehmen, um (die für alle 3D-Modellierung Anwendungen im Allgemeinen gelten):

  1. vorbereiten Textur
  2. Bereiten Material
  3. Nehmen Material auf ein Modell

Es gibt eine ist Klasse namens Texture in Rajawali, die ein Texturobjekt aus einem Bitmap-Bild erstellt. Also sollten Sie dieses Bild zuerst von Ihrem Server herunterladen. Download-Prozess ist abgesehen von Rajawali-Konzepten, so dass Sie es über viele vorhandene Bibliotheken erledigen können. Nachdem Sie das Bild heruntergeladen haben, können Sie es der Klasse Texture zuführen.

Texture mytexture = new Texture("texture", /*address to the downloaded image*/); 

Dann Sie es zu einem Material

try { 
    material.addTexture(mytexture); 

} catch (ATexture.TextureException error){ 
    Log.d(TAG, "Error Occurred"); 
} 

Jetzt sollte hinzufügen, können Sie dieses Material auf ein Modell anwenden

model.setMaterial(material); 
+1

Vielen Dank! Ich habe seit Monaten versucht, das herauszufinden. Du bist ein Lebensretter!! –