Java içinde 3D Modelleri Nasıl Yüklenir
aspose-3d-foss Java için 3D dosyalarını açmak için basit bir API sağlar. Bir dosyayı bir Scene nesneye yükledikten sonra düğüm hiyerarşisini gezebilir ve geometri verilerini okuyabilirsiniz.
Adım Adım Kılavuz
Adım 1: Paketi Yükleyin
Maven bağımlılığını ekleyin:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-3d-foss</artifactId>
<version>26.1.0</version>
</dependency>Adım 2: Scene Sınıfını İçe Aktarın
import com.aspose.threed.Scene;
import com.aspose.threed.Node;
import com.aspose.threed.Mesh;Adım 3: Bir Dosya Yükleyin
Scene scene = new Scene();
scene.open("model.obj");Veya statik fabrikayı kullanın:
Scene scene = Scene.fromFile("model.obj");Desteklenen formatlar: OBJ, STL, glTF 2.0 / GLB, FBX (yalnızca ikili — ASCII FBX desteklenmez ve hata verir ImportException).
Adım 4: Scene Düğümlerini Gezin
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);Adım 5: Mesh Verilerine Erişin
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");
}
}Yaygın Sorunlar ve Çözümler
Yükleme sırasında İstisna
Dosyanın bozulmadığını ve formatın desteklendiğini (OBJ, STL, glTF, FBX) doğrulayın.
Varlığa erişirken NullPointerException
Her düğüm geometri taşımaz. Her zaman kontrol edin node.getEntity() instanceof Mesh dönüştürmeden önce.
Koordinat sistemi uyumsuzluğu
Kullan ObjLoadOptions.setFlipCoordinateSystem(true) veya yükleme sonrasında bir dönüş uygulayın.
Sık Sorulan Sorular (SSS)
Hangi formatları yükleyebilirim?
OBJ, STL (ikili ve ASCII), glTF 2.0 / GLB ve FBX. FBX için yalnızca ikili FBX desteklenir. ASCII FBX dosyaları hata verir ImportException("ASCII FBX format not yet supported - only binary FBX is supported").
Bir InputStream’den yükleyebilir miyim?
Evet. scene.open() bir kabul eder InputStream.
Kütüphane çoklu iş parçacığı (thread) güvenli mi?
Her Scene örnek bağımsızdır. Ayrı dosyaları ayrı örneklerde ayrı iş parçacıklarından yüklemek güvenlidir.