Hoe 3D-modellen te laden in Java

Hoe 3D-modellen te laden in Java

aspose-3d-foss voor Java biedt een eenvoudige API voor het openen van 3D‑bestanden. Na het laden van een bestand in een Scene object kun je door de knooppunt‑hiërarchie lopen en geometrie‑gegevens lezen.

Stapsgewijze handleiding

Stap 1: Installeer het pakket

Voeg de Maven-dependency toe:

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

Stap 2: Importeer de Scene-klasse

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

Stap 3: Laad een bestand

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

Of gebruik de statische factory:

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

Ondersteunde formaten: OBJ, STL, glTF 2.0 / GLB, FBX (alleen binair — ASCII FBX wordt niet ondersteund en veroorzaakt ImportException).


Stap 4: Doorloop Scene-knooppunten

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

Stap 5: Toegang tot Mesh-gegevens

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

Veelvoorkomende problemen en oplossingen

Uitzondering bij laden

Controleer of het bestand niet beschadigd is en of het formaat wordt ondersteund (OBJ, STL, glTF, FBX).

NullPointerException bij toegang tot entiteit

Niet elk knooppunt bevat geometrie. Controleer altijd node.getEntity() instanceof Mesh voordat je cast.

Coördinatensysteem komt niet overeen

Gebruik ObjLoadOptions.setFlipCoordinateSystem(true) of pas een rotatie toe na het laden.


Veelgestelde vragen (FAQ)

Welke formaten kan ik laden?

OBJ, STL (binair en ASCII), glTF 2.0 / GLB, en FBX. Voor FBX is alleen binair FBX ondersteund. ASCII FBX‑bestanden zullen ImportException("ASCII FBX format not yet supported - only binary FBX is supported").

Kan ik laden vanuit een InputStream?

Ja. scene.open() accepteert een InputStream.

Is de bibliotheek thread‑safe?

Elke Scene instance is onafhankelijk. Het laden van afzonderlijke bestanden in afzonderlijke instanties vanuit verschillende threads is veilig.

 Nederlands