Kuinka ladata 3D-mallit Java:ssa
aspose-3d-foss Java:lle tarjoaa suoraviivaisen API:n 3D‑tiedostojen avaamiseen. Tiedoston lataamisen jälkeen kohteeseen Scene objektiin voit käydä läpi soluhierarkian ja lukea geometria‑tiedot.
Vaiheittainen opas
Vaihe 1: Asenna paketti
Lisää Maven-riippuvuus:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-3d-foss</artifactId>
<version>26.1.0</version>
</dependency>Vaihe 2: Tuo Scene-luokka
import com.aspose.threed.Scene;
import com.aspose.threed.Node;
import com.aspose.threed.Mesh;Vaihe 3: Lataa tiedosto
Scene scene = new Scene();
scene.open("model.obj");Tai käytä staattista tehdasta:
Scene scene = Scene.fromFile("model.obj");Tuetut formaatit: OBJ, STL, glTF 2.0 / GLB, FBX (vain binaarinen — ASCII FBX ei ole tuettu ja aiheuttaa ImportException).
Vaihe 4: Käy läpi Scene-solmut
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);Vaihe 5: Pääse Mesh-tietoihin
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");
}
}Yleisiä ongelmia ja korjauksia
Poikkeus latauksen aikana
Varmista, että tiedosto ei ole vioittunut ja että formaatti on tuettu (OBJ, STL, glTF, FBX).
NullPointerException entiteettiin pääsyssä
Kaikki solmut eivät sisällä geometriaa. Tarkista aina node.getEntity() instanceof Mesh ennen muunnosta.
Koordinaatistojärjestelmän epäsopivuus
Käytä ObjLoadOptions.setFlipCoordinateSystem(true) tai suorita kierto latauksen jälkeen.
Usein kysytyt kysymykset (UKK)
Mitä formaatteja voin ladata?
OBJ, STL (binaarinen ja ASCII), glTF 2.0 / GLB ja FBX. FBX:ssä vain binaarinen FBX on tuettu. ASCII FBX -tiedostot aiheuttavat ImportException("ASCII FBX format not yet supported - only binary FBX is supported").
Voinko ladata InputStreamistä?
Kyllä. scene.open() hyväksyy InputStream.
Onko kirjasto säikeiturvallinen?
Jokainen Scene instanssi on itsenäinen. Eri tiedostojen lataaminen eri instansseihin eri säikeistä on turvallista.