คุณสมบัติและฟังก์ชั่น
คุณสมบัติและฟังก์ชั่น
หน้านี้ครอบคลุมทุกพื้นที่ที่มีคุณสมบัติหลักของ 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 | การแปลท้องถิ่นการหมุนและการสกรู |
FileFormat | Registry และ detector สําหรับรูปแบบ |