Ciri-ciri dan Fungsi

Ciri-ciri dan Fungsi

Halaman ini merangkumi setiap kawasan ciri utama aspose-3d-foss 26.1.0 dengan contoh Java yang berfungsi.


Memuat dan Menyimpan Adegan

scene.open() memuatkan fail; scene.save() mengeksportnya:

import com.aspose.threed.Scene;

Scene scene = new Scene();
scene.open("input.obj");
scene.save("output.glb");

Alternatif kilang statik:

Scene scene = Scene.fromFile("input.fbx");
scene.save("output.stl");

Pilihan Khusus Format

Hantar subkelas LoadOptions atau SaveOptions untuk kawalan terperinci:

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

Nota: FBX disokong untuk import sahaja; eksport FBX tidak dilaksanakan dalam versi FOSS. Hanya fail binary FBX disokong untuk import — ASCII FBX menghasilkan ImportException.


Membina Graf Adegan

Buat nod dan lampirkan entiti:

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

Operasi Mesh

Cipta Mesh secara programatik dengan titik kawalan dan poligon:

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

Transformasi

Setiap Node membawa Transform:

Node node = scene.getRootNode().createChildNode("moved", new Mesh());
node.getTransform().setTranslation(10, 0, 5);
node.getTransform().setScale(2, 2, 2);

Baca ruang-dunia melalui node.getGlobalTransform().getMatrix().


Bahan

Tetapkan bahan kepada nod:

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

Jenis bahan: Material (base), PbrMaterial (PBR metallic-roughness).


Petua dan Amalan Terbaik

  • Gunakan Scene.fromFile() untuk pemuatan satu baris apabila pilihan khusus tidak diperlukan
  • Bina mesh secara programatik dengan createPolygon() untuk geometri khusus
  • Gunakan sambungan .glb untuk output glTF binari yang padat
  • Semak node.getEntity() != null sebelum menukar
  • Eksport STL tidak men-triangulasi muka poligon secara automatik. Eksport STL binari menulis hanya 3 verteks pertama bagi setiap muka poligon — muka kuad atau n‑gon dipotong secara senyap. Eksport STL ASCII menulis semua indeks verteks, yang menghasilkan blok faset yang rosak bagi muka bukan segitiga. Sentiasa hantarkan mesh yang telah dipra‑triangulasi (semua muka segitiga) kepada eksport STL untuk mengelakkan kehilangan data atau output yang tidak sah.

Isu Umum

IssueCauseFix
Pengecualian semasa memuatkanFail tidak disokong atau rosakSahkan fail dibuka dalam penonton 3D
Bahan hilang selepas muat OBJ.mtl fail tidak dijumpaiLetakkan .mtl di sebelah .obj; pastikan bahan diaktifkan
Ketidaksesuaian skala selepas importSistem unit berbezaGunakan skala Transform selepas memuatkan

Soalan Lazim

Bagaimana saya mengesan format fail?

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

Bolehkah saya memuatkan dari stream?

Ya. scene.open() menerima satu InputStream.

Format mana yang menyokong import dan eksport?

OBJ, STL, dan glTF/GLB menyokong kedua-dua arah. FBX hanya import; eksport tidak dilaksanakan dalam versi FOSS.


Ringkasan Rujukan API

Class / MethodDescription
SceneBekas adegan 3D peringkat atas
scene.open()Muat fail 3D mengikut laluan atau aliran
scene.save()Eksport adegan ke fail atau aliran
Scene.fromFile()Kilang statik untuk memuat dan mengembalikan Scene
NodeNode hierarki adegan
node.createChildNode()Cipta dan lampirkan node anak
MeshMesh poligon dengan titik kawalan dan senarai muka
mesh.createPolygon()Takrifkan muka poligon
Mesh.toMesh()Tukar atau klon geometri mesh
TransformTerjemahan, putaran, dan skala setempat
FileFormatPendaftaran dan pengesan untuk format
 Bahasa Melayu