Hvordan laste inn 3D-modeller i Java

Hvordan laste inn 3D-modeller i Java

aspose-3d-foss for Java gir et enkelt API for å åpne 3D-filer. Etter å ha lastet en fil inn i en Scene objekt kan du gå gjennom nodehierarkiet og lese geometridata.

Steg-for-steg guide

Steg 1: Installer pakken

Legg til Maven‑avhengigheten:

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

Steg 2: Importer Scene-klassen

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

Steg 3: Last inn en fil

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

Eller bruk den statiske fabrikken:

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

Støttede formater: OBJ, STL, glTF 2.0 / GLB, FBX (kun binær — ASCII FBX støttes ikke og kaster ImportException).


Steg 4: Gå gjennom Scene-noder

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

Steg 5: Få tilgang til Mesh-data

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

Vanlige problemer og løsninger

Unntak ved lasting

Bekreft at filen ikke er korrupt og at formatet er støttet (OBJ, STL, glTF, FBX).

NullPointerException ved tilgang til entitet

Ikke hver node inneholder geometri. Sjekk alltid node.getEntity() instanceof Mesh før du kaster.

Uoverensstemmelse i koordinatsystem

Bruk ObjLoadOptions.setFlipCoordinateSystem(true) eller bruk en rotasjon etter lasting.


Ofte stilte spørsmål (FAQ)

Hvilke formater kan jeg laste?

OBJ, STL (binær og ASCII), glTF 2.0 / GLB, og FBX. For FBX, kun binær FBX støttes. ASCII FBX-filer vil kaste ImportException("ASCII FBX format not yet supported - only binary FBX is supported").

Kan jeg laste fra en InputStream?

Ja. scene.open() aksepterer en InputStream.

Er biblioteket trådsikkert?

Hver Scene instans er uavhengig. Å laste separate filer inn i separate instanser fra separate tråder er trygt.

 Norsk