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.