Gestionarea scenelor
Gestionarea scenelor
Clasa Scene este punctul de intrare pentru tot conținutul 3D din Aspose.3D pentru .NET. Aceasta oferă metode pentru a crea scene de la zero, a încărca fișiere existente în orice format acceptat, a salva în orice format țintă și a inspecta metadatele scenei.
Crearea și deschiderea scenelor
Creează o scenă goală cu new Scene(), sau încarcă dintr-un fișier:
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 detectează automat formatul din extensia fișierului și din octeții magici. Folosește suprasarcina FileFormat când extensia este ambiguă sau absentă.
Salvarea scenelor
Salvează o scenă într-un fișier sau flux în orice format de ieșire acceptat:
// 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);Ștergerea conținutului scenei
Pentru a elimina toate nodurile și activele dintr-o scenă păstrând obiectul Scene:
// Remove all direct children of the root node
scene.RootNode.ChildNodes.Clear();
// Or replace the scene entirely
scene = new Scene();Scene.Clear() este disponibil și curăță conținutul scenei, restabilind setările implicite; alternativ, creează o nouă instanță Scene așa cum se arată mai sus.
Metadatele scenei
Proprietatea AssetInfo pe un Scene expune metadatele încorporate în formatele acceptate (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);Setează metadatele înainte de salvare pentru a le păstra în fișierul de ieșire:
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 | Descriere: |
|---|---|
new Scene() | Creează o scenă goală |
Scene.FromFile(path) | Helper static: deschide un fișier și returnează scena încărcată |
scene.Open(path, format?) | Încarcă un fișier într-o scenă existentă |
scene.Open(stream, format) | Încarcă dintr-un flux |
scene.Save(path, format?) | Salvează într-un fișier |
scene.Save(stream, format) | Salvează într-un flux |
scene.RootNode | Rădăcina Node a ierarhiei scenei |
scene.AssetInfo | Bloc de metadate (creator, marcaje de timp, unități) |
scene.AssetInfo.ApplicationName | Numele aplicației încorporat în fișier |
scene.AssetInfo.UnitScaleFactor | Scara unității scenei în raport cu metri |
Vezi și:
- Aspose.3D for .NET — Enterprise Documentation
- Lucrul cu graficul scenei — navigați și modificați ierarhia nodurilor
- Suport pentru formate — toate formatele de intrare și ieșire acceptate