Özellikler ve fonksiyonlar
Özellikler ve fonksiyonlar
Bu sayfa her önemli özellik alanını kapsamaktadır. Aspose 3D-Foss 26.0 İndir Java örnekleri ile çalışıyoruz.
Sahne yükleme ve tasarruf
scene.open() bir dosyayı yüklemek; scene.save() İhracat yapıyor :
import com.aspose.threed.Scene;
Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");Statik fabrika alternatifi:
Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");Format Özel Seçenekler
Pasaport LoadOptions veya SaveOptions Fine-gelen kontrol için alt sınıflar:
import com.aspose.threed.*;
Scene scene = new Scene();
ObjLoadOptions opts = new ObjLoadOptions();
opts.setFlipCoordinateSystem(true);
scene.open("model.obj", opts);
GltfSaveOptions saveOpts = new GltfSaveOptions();
saveOpts.setFlipCoordinateSystem(true);
scene.save("model.glb", saveOpts);Not : FBX yalnızca ithalat için desteklenir; FBx ihracatı FOSS versiyonunda uygulanmaz. İkili FBX Dosyalar ithalat için desteklenir — ASCII FBX atar
ImportException.
Bir sahne grafikleri oluşturmak
Node oluşturun ve entiteleri ekleyin:
Scene scene = new Scene();
Node root = scene.getRootNode();
Mesh mesh = new Mesh("myMesh");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.createPolygon(0, 1, 2);
Node meshNode = root.createChildNode("triangle", mesh);Mesh Operasyonları
A oluşturmak Mesh Kontrol noktaları ve poligonları ile programlı olarak:
Mesh mesh = new Mesh("custom");
mesh.getControlPoints().add(new Vector4(0, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 0, 0));
mesh.getControlPoints().add(new Vector4(10, 10, 0));
mesh.getControlPoints().add(new Vector4(0, 10, 0));
mesh.createPolygon(0, 1, 2, 3);Transformasyonlar
Herkesin Node A taşıyıcı Transform:
Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);Dünya uzayını okuyun node.getGlobalTransform().getMatrix().
Malzeme
Nodeye malzeme ayırın:
import com.aspose.threed.*;
PbrMaterial mat = new PbrMaterial("shiny");
mat.setAlbedo(new Vector4(0.8, 0.2, 0.2, 1.0));
mat.setMetallicFactor(0.5);
mat.setRoughnessFactor(0.3);
scene.getRootNode().createChildNode("red_mesh", mesh, mat);Malzeme türleri : Material ( Bir temel olarak, PbrMaterial (PBR metal sertliği ile ilgili).
İpuçları ve En İyi Uygulamalar
- Kullanım
Scene.fromFile()Özel seçenekler gerekmediğinde tek çizgi yükler için - Programlı olarak yapıştırma ile yapılır.
createPolygon()Özel Geometri için - Kullanım
.glbKompakt ikili glTF çıkış için uzantı - kontrolü
node.getEntity() != nullcasting önce - STL ihracat yapıyor Hayır Üçgen poligon yüzü otomatik olarak. Binary STL ihracatı, her poligon yüzünün sadece ilk 3 dikeyini yazar - çeyrek veya n-gon yüzleri sessizce kaydırılır. ASCII ST L ihraç tüm vertex göstergelerini yazır, bu da üçgen olmayan yüzler için bozuk yüz bloklarını üretir. Her zaman veri kaybını veya geçersiz çıkışını önlemek için STl ihranına önceden üçgülli mesheler (tüm üçge yüzlerini) geçer.
ortak sorunlar
| Konu | sebepleri | Fix |
|---|---|---|
| Ücretsiz yük | Desteklenmemiş veya yolsuz dosya | Dosya açılır kontrol 3D izleyicide |
| OBJ yükünden sonra kaybolan malzeme | .mtl Dosya bulunamadı | Yerleri .mtl yanında .obj;• Malzemeye izin verilmesini sağlamak |
| İthalat Sonrası Ölçüm Sıkıntısı | Farklı birim sistemleri | A uygulama Transform Yükleme sonrası ölçek |
FAQ
Bir dosya biçimini nasıl tespit edebilirim?
FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());Bir akımdan yükleyebilir miyim?
Evet evet. scene.open() kabul eder bir InputStream.
Hangi formatı hem ithalat hem de ihracat destekler?
OBJ, STL ve glTF/GLB her iki yönde de destekler. FBX sadece ithal edilir; ihracat FOSS versiyonunda uygulanmaz.
API Referans Özetleri
| Sınıf / Yöntem | Açıklama |
|---|---|
Scene | Üst düzey 3D sahne konteynerleri |
scene.open() | 3D dosyayı yol veya akım ile yükleyin |
scene.save() | Dosya veya akış için ihraç sahne |
Scene.fromFile() | Yükleme ve geri dönüş için statik fabrika a Scene |
Node | Sezon hierarşisi node |
node.createChildNode() | Bir çocuk düğmesi oluşturun ve yapıştırın |
Mesh | Kontrol noktaları ve yüz listeleri ile poligon çubukları |
mesh.createPolygon() | Poligon yüzü tanımlayın |
Mesh.toMesh() | Konvert veya klon mesh geometri |
Transform | Yerel çeviri, dönüş ve ölçek |
FileFormat | Formatlar için kayıt ve dedektör |