คุณสมบัติและฟังก์ชั่น

คุณสมบัติและฟังก์ชั่น

คุณสมบัติและฟังก์ชั่น

หน้านี้ครอบคลุมทุกพื้นที่ที่มีคุณสมบัติหลักของ aspose-3d-foss 26.1.0 ใบมีด ด้วยการทํางานของ Java ตัวอย่าง.


การโหลดและบันทึกภาพยนตร์

scene.open() ดาวน์โหลดไฟล์; scene.save() ส่งออก:

import com.aspose.threed.Scene;

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

ตัวเลือกโรงงานสเตนิก:

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

ตัวเลือกแบบกําหนดเอง

เฟอร์รี่ LoadOptions หรือ SaveOptions คลาสใต้สําหรับการควบคุมเม็ดสี:

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

หมายเหตุ : FBX สนับสนุนสําหรับการนําเข้าเท่านั้น การส่งออก FB X ไม่มีการดําเนินการในเวอร์ชัน FOSS เท่านั้น บินเนอร์ FBX ไฟล์ที่สนับสนุนสําหรับการนําเข้า — ASCII FBX throws ImportException.


สร้างภาพยนตร์ที่แสดง

สร้างค่องและแนบ entities:

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

สร้าง A Mesh โปรแกรมด้วยจุดควบคุมและโพลีกรอง:

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

การเปลี่ยนแปลง

ทุกคน Node นํา A Transform:

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

อ่านสากลผ่านทาง node.getGlobalTransform().getMatrix().


วัสดุ

การจัดหาวัสดุสําหรับคอย:

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

ประเภทวัสดุ: Material (ฐาน ), PbrMaterial (PBR โลหะความแข็ง).


เคล็ดลับและปฏิบัติที่ดีที่สุด

  • ใช้ Scene.fromFile() สําหรับโหลดแบบหนึ่งสายเมื่อตัวเลือกที่กําหนดเองไม่จําเป็นต้องใช้
  • สร้างตารางโดยโปรแกรมด้วย createPolygon() สําหรับการกําหนดเองเกียจิเมตริก
  • ใช้ .glb การขยายสําหรับ GLTF แบบไบนารีขนาดกะทัดรัด
  • ตรวจสอบ node.getEntity() != null ก่อนที่จะ casting
  • STL การส่งออก ไม่ สองสามหน้าผากจะถูกส่งออกโดยอัตโนมัติ การส่งออกไป STL คู่เป็นเพียง 3 ด้านแรกของแต่ละด้านผัง - หน้า quad หรือ n-gon จะถูกตัดเงียบ. การผลิต ASCII STl เขียนทุกตัวเลขแนวตั้งซึ่งสร้างบล็อกหน้าที่ผิดปกติสําหรับใบหน้าที่ไม่ใช่สามเหลี่ยมเสมอผ่านม้าแบบพ่วง (หน้าทั้งสามคน) ไปยังการส่งออกมา ST L เพื่อหลีกเลี่ยงการสูญเสียข้อมูลหรือผลลัพธ์ไม่ถูกต้อง.

ปัญหาทั่วไป

หลักสูตรสาเหตุปรับปรุง
ภายนอกสําหรับโหลดไฟล์ที่ไม่ได้สนับสนุนหรือถูกทําลายตรวจสอบไฟล์เปิดใน 3D Viewer
วัสดุที่หายไปหลังจากโหลด OBJ.mtl ไฟล์ที่ไม่ได้พบสถานที่ .mtl ใกล้กับ .obj;·ให้แน่ใจว่าวัสดุจะเปิดใช้งานได้
การสแกนที่แตกต่างกันหลังจากนําเข้าระบบหน่วยที่แตกต่างกันใช้ A Transform ระดับหลังการโหลด

FAQ

ฉันจะตรวจจับรูปแบบไฟล์อย่างไร?

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

ฉันสามารถโหลดได้จาก Stream ได้หรือไม่?

ใช่. scene.open() รับรอง 1 InputStream.

รูปแบบใดที่สนับสนุนทั้งการนําเข้าและส่งออก?

OBJ, STL และ glTF / GLB สนับสนุนทั้งสองทิศทาง FBX เป็นการนําเข้าเท่านั้น การส่งออกไม่ได้ดําเนินการในเวอร์ชัน FOSS.


คําอธิบายการพบบ่อย API

ประเภท / วิธีการลักษณะ
Sceneระดับสูง 3D ฉากคอนเทนเนอร์
scene.open()ดาวน์โหลดไฟล์ 3D โดยเส้นทางหรือไหล
scene.save()ฉากการส่งออกไปยังไฟล์หรือ Stream
Scene.fromFile()โรงงานสเตนิกที่จะโหลดและคืนเงิน a Scene
Nodeฉากไดเรกทอรีนิวส์
node.createChildNode()สร้างและแนบลูกค้าระดับ
Meshโพลีโกลนมีจุดควบคุมและรายการใบหน้า
mesh.createPolygon()การกําหนดใบหน้าของ Polygon
Mesh.toMesh()การแปลงหรือคลอนเมซะเกิโตรเลียม
Transformการแปลท้องถิ่นการหมุนและการสกรู
FileFormatRegistry และ detector สําหรับรูปแบบ
 ภาษาไทย