Cara Memuat Model 3D dalam Java
aspose-3d-foss untuk Java menyediakan API yang mudah untuk membuka fail 3D. Selepas memuatkan fail ke dalam satu Scene objek, anda boleh menelusuri hierarki nod dan membaca data geometri.
Panduan Langkah demi Langkah
Langkah 1: Pasang Pakej
Tambah kebergantungan Maven:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-3d-foss</artifactId>
<version>26.1.0</version>
</dependency>Langkah 2: Import Kelas Scene
import com.aspose.threed.Scene;
import com.aspose.threed.Node;
import com.aspose.threed.Mesh;Langkah 3: Muat Fail
Scene scene = new Scene();
scene.open("model.obj");Atau gunakan kilang statik:
Scene scene = Scene.fromFile("model.obj");Format yang disokong: OBJ, STL, glTF 2.0 / GLB, FBX.
Langkah 4: Lintasi Nod Adegan
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);Langkah 5: Akses Data Mesh
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");
}
}Isu Umum dan Penyelesaian
Pengecualian semasa memuat
Pastikan fail tidak rosak dan format disokong (OBJ, STL, glTF, FBX).
NullPointerException semasa mengakses entiti
Tidak semua nod membawa geometri. Sentiasa periksa node.getEntity() instanceof Mesh sebelum menukar jenis.
Ketidakcocokan sistem koordinat
Gunakan ObjLoadOptions.setFlipCoordinateSystem(true) atau terapkan putaran selepas memuatkan.
Soalan Lazim (FAQ)
Format apa yang boleh saya muat?
OBJ, STL (binari dan ASCII), glTF 2.0 / GLB, dan FBX.
Bolehkah saya memuat dari InputStream?
Ya. scene.open() menerima satu InputStream.
Adakah perpustakaan ini thread-safe?
Setiap Scene instance adalah bebas. Memuatkan fail berasingan ke dalam instance berasingan daripada thread berasingan adalah selamat.