Cum să încărcați modele 3D în Java

Cum să încărcați modele 3D în Java

aspose-3d-foss pentru Java oferă un API simplu pentru deschiderea fișierelor 3D. După încărcarea unui fișier într-un Scene obiect, poți parcurge ierarhia nodurilor și citi datele de geometrie.

Ghid pas cu pas

Pasul 1: Instalează pachetul

Adăugați dependența Maven:

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

Pasul 2: Importă clasa Scene

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

Pasul 3: Încarcă un fișier

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

Sau folosește fabrica statică:

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

Formate suportate: OBJ, STL, glTF 2.0 / GLB, FBX (doar binar — FBX ASCII nu este suportat și aruncă ImportException).


Pasul 4: Parcurge nodurile Scene

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

Pasul 5: Accesează datele Mesh

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

Probleme comune și soluții

Excepție la încărcare

Verifică că fișierul nu este corupt și că formatul este suportat (OBJ, STL, glTF, FBX).

NullPointerException la accesarea entității

Nu fiecare nod conține geometrie. Verifică întotdeauna node.getEntity() instanceof Mesh înainte de a face cast.

Neconcordanță a sistemului de coordonate

Folosește ObjLoadOptions.setFlipCoordinateSystem(true) sau aplică o rotație după încărcare.


Întrebări frecvente (FAQ)

Ce formate pot încărca?

OBJ, STL (binare și ASCII), glTF 2.0 / GLB și FBX. Pentru FBX, doar FBX binar este suportat. Fișierele FBX ASCII vor arunca ImportException("ASCII FBX format not yet supported - only binary FBX is supported").

Pot încărca dintr-un InputStream?

Da. scene.open() acceptă un InputStream.

Este biblioteca sigură pentru fire de execuție?

Fiecare Scene instanța este independentă. Încărcarea fișierelor separate în instanțe separate din fire de execuție separate este sigură.

 Română