Özellikler ve İşlevsellikler

Özellikler ve İşlevsellikler

Özellikler ve İşlevsellikler

Bu sayfa, her ana özellik alanını kapsar aspose-3d-foss 26.1.0 çalışan Java örnekleriyle.


Sahneleri Yükleme ve Kaydetme

scene.open() bir dosya yükler; scene.save() dışa aktarır:

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

Geç LoadOptions veya SaveOptions ince ayarlı 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 içe aktarma için desteklenir; FBX dışa aktarımı FOSS sürümünde uygulanmamıştır. Sadece ikili FBX dosyalar içe aktarma için desteklenir — ASCII FBX hata verir ImportException.


Bir Sahne Grafiği Oluşturma

Düğümler oluşturun ve varlıkları 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 İşlemleri

Bir oluştur Mesh kontrol noktaları ve çokgenlerle 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);

Dönüşümler

Her Node taşır 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ı aracılığıyla oku node.getGlobalTransform().getMatrix().


Materyaller

Materyalleri düğümlere atayın:

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 (temel), PbrMaterial (PBR metallic-roughness).


İpuçları ve En İyi Uygulamalar

  • Kullan Scene.fromFile() özel seçeneklere ihtiyaç duyulmadığında tek satırlık yüklemeler için
  • Şununla programlı olarak ağlar oluştur createPolygon() özel geometri için
  • Kullan .glb kompakt ikili glTF çıktısı için uzantı
  • Kontrol et node.getEntity() != null dönüştürmeden önce
  • STL dışa aktarımı yapmaz poligon yüzlerini otomatik olarak üçgenleştirir. İkili STL dışa aktarımı her poligon yüzünün yalnızca ilk 3 köşesini yazar — dörtgen veya n‑gon yüzler sessizce kırpılır. ASCII STL dışa aktarımı tüm köşe indekslerini yazar, bu da üçgen olmayan yüzler için bozuk facet blokları oluşturur. Veri kaybını veya geçersiz çıktıyı önlemek için STL dışa aktarımına her zaman önceden üçgenleştirilmiş ağları (tamamen üçgen yüzler) gönderin.

Yaygın Sorunlar

SorunNedenDüzeltme
Yükleme sırasında istisnaDesteklenmeyen veya bozuk dosyaDosyanın 3D görüntüleyicide açıldığını doğrulayın
OBJ yüklemesinden sonra eksik materyaller.mtl dosya bulunamadıYerleştir .mtl yanında .obj; malzemelerin etkin olduğundan emin olun
İçe aktarmadan sonra ölçek uyumsuzluğuFarklı birim sistemleriUygula bir Transform yükleme sonrasında ölçek

FAQ

Bir dosyanın formatını nasıl tespit ederim?

FileFormat format = FileFormat.detect("unknown.bin");
System.out.println(format.getExtension());

Bir akıştan yükleyebilir miyim?

Evet. scene.open() kabul eder bir InputStream.

Hangi formatlar hem içe aktarım hem de dışa aktarımı destekler?

OBJ, STL ve glTF/GLB her iki yönü de destekler. FBX yalnızca içe aktarmayı destekler; dışa aktarma FOSS sürümünde uygulanmadı.


API Referans Özeti

Sınıf / MetotAçıklama
SceneÜst düzey 3D sahne kapsayıcısı
scene.open()Bir 3D dosyasını yol veya akış ile yükle
scene.save()Sahneyi dosyaya veya akışa dışa aktar
Scene.fromFile()Yüklemek ve birini döndürmek için statik fabrika Scene
NodeSahne hiyerarşi düğümü
node.createChildNode()Bir alt düğüm oluştur ve ekle
MeshKontrol noktaları ve yüz listeleriyle poligon örgüsü
mesh.createPolygon()Poligon yüzü tanımla
Mesh.toMesh()Mesh geometrisini dönüştür veya klonla
TransformYerel taşıma, döndürme ve ölçekleme
FileFormatBiçimler için kayıt ve algılayıcı
 Türkçe