Wie man 3D-Modelle in Java lädt

Wie man 3D-Modelle in Java lädt

aspose-3d-foss für Java bietet eine unkomplizierte API zum Öffnen von 3D-Dateien. Nach dem Laden einer Datei in ein Scene Objekt können Sie die Knotenhierarchie durchlaufen und Geometriedaten lesen.

Schritt-für-Schritt-Anleitung

Schritt 1: Paket installieren

Fügen Sie die Maven-Abhängigkeit hinzu:

<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>aspose-3d-foss</artifactId>
  <version>26.1.0</version>
</dependency>

Schritt 2: Scene‑Klasse importieren

import com.aspose.threed.Scene;
import com.aspose.threed.Node;
import com.aspose.threed.Mesh;

Schritt 3: Datei laden

Scene scene = new Scene();
scene.open("model.obj");

Oder verwenden Sie die statische Fabrik:

Scene scene = Scene.fromFile("model.obj");

Unterstützte Formate: OBJ, STL, glTF 2.0 / GLB, FBX (nur binär — ASCII FBX wird nicht unterstützt und wirft ImportException).


Schritt 4: Szenenknoten durchlaufen

void walk(Node node, int depth) {
    String indent = " ".repeat(depth * 2);
    System.out.println(indent + "Node: " + node.getName());
    for (Node child : node.getChildNodes()) {
        walk(child, depth + 1);
    }
}

walk(scene.getRootNode(), 0);

Schritt 5: Mesh‑Daten zugreifen

for (Node node : scene.getRootNode().getChildNodes()) {
    if (node.getEntity() instanceof Mesh) {
        Mesh mesh = (Mesh) node.getEntity();
        System.out.println("Mesh '" + node.getName() + "': " +
            mesh.getControlPoints().size() + " vertices, " +
            mesh.getPolygonCount() + " polygons");
    }
}

Häufige Probleme und Lösungen

Ausnahme beim Laden

Stellen Sie sicher, dass die Datei nicht beschädigt ist und das Format unterstützt wird (OBJ, STL, glTF, FBX).

NullPointerException beim Zugriff auf Entity

Nicht jeder Knoten enthält Geometrie. Prüfen Sie immer node.getEntity() instanceof Mesh vor dem Casten.

Koordinatensystem-Fehlanpassung

Verwenden Sie ObjLoadOptions.setFlipCoordinateSystem(true) oder wenden Sie nach dem Laden eine Rotation an.


Häufig gestellte Fragen (FAQ)

Welche Formate kann ich laden?

OBJ, STL (binär und ASCII), glTF 2.0 / GLB und FBX. Für FBX, nur binäres FBX wird unterstützt. ASCII FBX-Dateien werden werfen ImportException("ASCII FBX format not yet supported - only binary FBX is supported").

Kann ich aus einem InputStream laden?

Ja. scene.open() akzeptiert ein InputStream.

Ist die Bibliothek thread‑sicher?

Jeder Scene Instanz ist unabhängig. Das Laden separate Dateien in separate Instanzen aus separaten Threads ist sicher.

 Deutsch