Kuinka ladata 3D-mallit Java:ssa

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.

 Suomi