การจัดการฉาก
การจัดการฉาก
คลาส Scene เป็นจุดเริ่มต้นสำหรับเนื้อหา 3 มิติทั้งหมดใน Aspose.3D สำหรับ .NET. มันให้เมธอดสำหรับสร้างฉากจากศูนย์, โหลดไฟล์ที่มีอยู่ในรูปแบบที่รองรับใด ๆ, บันทึกไปยังรูปแบบเป้าหมายใด ๆ, และตรวจสอบเมตาดาต้าของฉาก.
การสร้างและเปิดฉาก
สร้างฉากเปล่าด้วย new Scene(), หรือโหลดจากไฟล์:
using Aspose.ThreeD;
// Empty scene
var empty = new Scene();
// Load from file — format is detected automatically
var scene = Scene.FromFile("model.fbx");
// Load using Scene.Open with explicit format
var scene2 = new Scene();
scene2.Open("model.obj", FileFormat.WavefrontOBJ);
// Load from a stream (useful when reading from memory or network)
using var stream = System.IO.File.OpenRead("model.stl");
var scene3 = new Scene();
scene3.Open(stream, FileFormat.STLBinary);Scene.FromFile ตรวจจับรูปแบบโดยอัตโนมัติจากนามสกุลไฟล์และ magic bytes. ใช้ overload FileFormat เมื่อส่วนขยายไฟล์ไม่ชัดเจนหรือไม่มี.
การบันทึกฉาก
บันทึกฉากไปยังไฟล์หรือสตรีมในรูปแบบเอาต์พุตที่รองรับใด ๆ:
// Save to file — format determined from extension
scene.Save("output.gltf");
// Save with explicit format
scene.Save("output.bin", FileFormat.GLTF2_Binary);
// Save to a stream
using var output = System.IO.File.Create("output.fbx");
scene.Save(output, FileFormat.FBX7700Binary);
// Save with format-specific options
var opts = new Aspose.ThreeD.Formats.ObjSaveOptions();
opts.PointCloud = false;
scene.Save("output.obj", opts);การล้างเนื้อหาในฉาก
เพื่อลบโหนดและทรัพยากรทั้งหมดออกจากฉากโดยยังคงวัตถุ Scene ไว้:
// Remove all direct children of the root node
scene.RootNode.ChildNodes.Clear();
// Or replace the scene entirely
scene = new Scene();Scene.Clear() มีให้ใช้และล้างเนื้อหาในฉาก, คืนค่าการตั้งค่าเริ่มต้น; หรืออีกทางเลือกหนึ่ง, สร้างอินสแตนซ์ Scene ใหม่ตามที่แสดงด้านบน.
เมตาดาต้าฉาก
คุณสมบัติ AssetInfo บน Scene เปิดเผยเมตาดาต้าที่ฝังอยู่ในรูปแบบที่รองรับ (FBX, Collada, glTF):
var info = scene.AssetInfo;
Console.WriteLine("Author: " + info.Author);
Console.WriteLine("Creation UTC: " + info.CreationTime);
Console.WriteLine("Units: " + info.UnitName + " @ " + info.UnitScaleFactor);ตั้งค่าเมตาดาต้าก่อนบันทึกเพื่อเก็บรักษาไว้ในไฟล์ผลลัพธ์:
scene.AssetInfo.ApplicationName = "My Application 1.0";
scene.AssetInfo.UnitName = "meter";
scene.AssetInfo.UnitScaleFactor = 1.0;
scene.Save("output_with_meta.fbx");API Quick Reference
| Member | คำอธิบาย |
|---|---|
new Scene() | สร้างฉากเปล่า |
Scene.FromFile(path) | ตัวช่วยแบบสแตติก: เปิดไฟล์และคืนฉากที่โหลดแล้ว |
scene.Open(path, format?) | โหลดไฟล์เข้าสู่ฉากที่มีอยู่ |
scene.Open(stream, format) | โหลดจากสตรีม |
scene.Save(path, format?) | บันทึกลงไฟล์ |
scene.Save(stream, format) | บันทึกลงสตรีม |
scene.RootNode | Root Node ของลำดับชั้นฉาก |
scene.AssetInfo | บล็อกเมทาดาต้า (ผู้สร้าง, เวลา, หน่วย) |
scene.AssetInfo.ApplicationName | ชื่อแอปพลิเคชันฝังอยู่ในไฟล์ |
scene.AssetInfo.UnitScaleFactor | สเกลหน่วยของซีนสัมพันธ์กับเมตร |
ดูเพิ่มเติม
- Aspose.3D for .NET — Enterprise Documentation
- การทำงานกับกราฟซีน — นำทางและแก้ไขโครงสร้างลำดับชั้นของโหนด
- การสนับสนุนรูปแบบ — รูปแบบอินพุตและเอาต์พุตที่รองรับทั้งหมด