วิธีแปลงโมเดล 3 มิติใน .NET
Aspose.3D for .NET ทำการแปลงรูปแบบเป็นกระบวนการสองขั้นตอน: โหลดไฟล์ต้นทางด้วย Scene.Open(), จากนั้นบันทึกเป็นรูปแบบเป้าหมายด้วย Scene.Save(). รูปแบบผลลัพธ์จะถูกสรุปจากส่วนขยายของไฟล์.
คู่มือแบบขั้นตอนต่อขั้นตอน
ขั้นตอนที่ 1: ติดตั้งแพคเกจ
dotnet add package Aspose.3D --version 26.1.0ขั้นตอนที่ 2: นำเข้า Namespaces
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;ขั้นตอนที่ 3: โหลดไฟล์ต้นฉบับ
var scene = new Scene();
scene.Open("input.fbx");ขั้นตอนที่ 4: บันทึกในรูปแบบเป้าหมาย
scene.Save("output.glb");ไลบรารีตรวจจับรูปแบบเป้าหมายจากส่วนขยาย รูปแบบการส่งออกที่รองรับ: OBJ, STL, glTF 2.0 / GLB, FBX, COLLADA, และ 3MF.
ขั้นตอนที่ 5: ใช้ตัวเลือกการบันทึกตามรูปแบบ
สำหรับการควบคุมแบบละเอียด ให้ส่งคลาสย่อย SaveOptions:
// FBX output — always produces binary FBX
// FbxSaveOptions exists but has no format-specific properties in this version
scene.Save("output.fbx");
// OBJ with flipped coordinate system
scene.Save("output.obj", new ObjSaveOptions { FlipCoordinateSystem = true });
// COLLADA with indented XML
scene.Save("output.dae", new ColladaSaveOptions { Indented = true });สูตรการแปลงทั่วไป
| ต้นฉบับ | เป้าหมาย | รหัส |
|---|---|---|
| OBJ to GLB | scene.Open("input.obj"); scene.Save("output.glb"); | Binary glTF สำหรับผู้ชมเว็บ |
| FBX to STL | scene.Open("input.fbx"); scene.Save("output.stl"); | เมชสามเหลี่ยมสำหรับการพิมพ์ 3 มิติ |
| glTF to COLLADA | scene.Open("input.gltf"); scene.Save("output.dae"); | รูปแบบการแลกเปลี่ยน DAE |
| STL to OBJ | scene.Open("input.stl"); scene.Save("output.obj"); | Wavefront สำหรับเครื่องมือสร้างโมเดล |
ปัญหาทั่วไปและการแก้ไข
ไฟล์ผลลัพธ์ว่างเปล่าหรือมีขนาดเล็กมาก
ตรวจสอบให้แน่ใจว่าไฟล์ต้นทางโหลดสำเร็จแล้ว ตรวจสอบ scene.RootNode.ChildNodes.Count หลังจาก Open().
วัสดุที่สูญหายระหว่างการแปลง
ฟอร์แมตทั้งหมดไม่ได้มีคุณสมบัติของวัสดุเดียวกัน OBJ ใช้วัสดุแบบ Lambert/Phong; glTF ใช้ PBR. การแมปวัสดุเป็นการพยายามอย่างดีที่สุดข้ามขอบเขตของฟอร์แมต.
ความแตกต่างของสเกลระหว่างแหล่งข้อมูลและผลลัพธ์
เครื่องมือต่าง ๆ ใช้ระบบหน่วยที่แตกต่างกัน. ใช้ ObjLoadOptions.Scale เมื่อทำการนำเข้า หรือปรับ node.Transform.Scale ก่อนบันทึก.
คำถามที่พบบ่อย (FAQ)
ฉันสามารถแปลง PLY ไปเป็นรูปแบบอื่นได้หรือไม่?
PLY เป็นแบบนำเข้าเท่านั้น โหลดไฟล์ PLY แล้วบันทึกเป็นรูปแบบการส่งออกใดก็ได้ (OBJ, STL, GLB, FBX, COLLADA).
การแปลงจะคงแอนิเมชันไว้หรือไม่?
ข้อมูลการเคลื่อนไหว (AnimationClip) จะถูกเก็บรักษาไว้เมื่อทั้งสองรูปแบบรองรับ (เช่น FBX ไปยัง glTF) STL และ OBJ ไม่ได้บรรจุข้อมูลการเคลื่อนไหว.
ฉันสามารถแปลงหลายไฟล์เป็นชุดได้หรือไม่?
สร้าง Scene ใหม่สำหรับแต่ละไฟล์ในลูป แต่ละ Scene เป็นอิสระและสามารถประมวลผลแบบขนานได้.