3D modellek betöltése a Java-ban

3D modellek betöltése a Java-ban

az aspose-3d-foss a Java számára egyszerű API-t biztosít 3D fájlok megnyitásához. A fájl betöltése után egy Scene objektumba bejárhatja a csomópont-hierarchiát, és olvashatja a geometriai adatokat.

Lépésről-lépésre útmutató

1. lépés: A csomag telepítése

Adja hozzá a Maven függőséget:

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

2. lépés: A Scene osztály importálása

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

3. lépés: Fájl betöltése

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

Vagy használja a statikus gyárat:

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

Támogatott formátumok: OBJ, STL, glTF 2.0 / GLB, FBX (csak bináris — az ASCII FBX nem támogatott, és hibát dob ImportException).


4. lépés: A Scene csomópontok bejárása

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

5. lépés: Mesh adatok elérése

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

Gyakori problémák és megoldások

Kivétel betöltéskor

Ellenőrizze, hogy a fájl nem sérült, és a formátum támogatott (OBJ, STL, glTF, FBX).

NullPointerException az entitás elérésekor

Nem minden csomópont tartalmaz geometriát. Mindig ellenőrizze node.getEntity() instanceof Mesh mielőtt átkonvertálná.

Koordináta-rendszer eltérés

Használja ObjLoadOptions.setFlipCoordinateSystem(true) vagy alkalmazzon forgatást a betöltés után.


Gyakran Ismételt Kérdések (GYIK)

Mely formátumokat tudok betölteni?

OBJ, STL (bináris és ASCII), glTF 2.0 / GLB, és FBX. FBX esetén csak bináris FBX támogatott. Az ASCII FBX fájlok hibát fognak dobni ImportException("ASCII FBX format not yet supported - only binary FBX is supported").

Betölthetek InputStream-ből?

Igen. scene.open() elfogad egy InputStream.

A könyvtár szálbiztos?

Minden Scene példány független. Külön fájlok betöltése külön példányokba külön szálakról biztonságos.

 Magyar