Szenenverwaltung
Szenenverwaltung
Die Scene-Klasse ist der Einstiegspunkt für alle 3D-Inhalte in Aspose.3D für .NET. Sie bietet Methoden zum Erstellen von Szenen von Grund auf, zum Laden vorhandener Dateien in jedem unterstützten Format, zum Speichern in jedes Zielformat und zum Untersuchen von Szenen-Metadaten.
Erstellen und Öffnen von Szenen
Erstelle eine leere Szene mit new Scene(), oder lade sie aus einer Datei:
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 erkennt das Format automatisch anhand der Dateierweiterung und der Magic Bytes. Verwende die FileFormat-Überladung, wenn die Erweiterung mehrdeutig oder nicht vorhanden ist.
Szenen speichern
Speichere eine Szene in eine Datei oder einen Stream in jedem unterstützten Ausgabeformat:
// 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);Szeneninhalt löschen
Um alle Knoten und Assets aus einer Szene zu entfernen, während das Scene-Objekt beibehalten wird:
// Remove all direct children of the root node
scene.RootNode.ChildNodes.Clear();
// Or replace the scene entirely
scene = new Scene();Scene.Clear() ist verfügbar und löscht den Szeneninhalt, wobei die Standardeinstellungen wiederhergestellt werden; alternativ kann eine neue Scene-Instanz wie oben gezeigt erstellt werden.
Szenen-Metadaten
Die AssetInfo-Eigenschaft eines Scene gibt Metadaten frei, die in unterstützten Formaten (FBX, Collada, glTF) eingebettet sind:
var info = scene.AssetInfo;
Console.WriteLine("Author: " + info.Author);
Console.WriteLine("Creation UTC: " + info.CreationTime);
Console.WriteLine("Units: " + info.UnitName + " @ " + info.UnitScaleFactor);Metadaten vor dem Speichern setzen, um sie in der Ausgabedatei zu erhalten:
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 | Beschreibung |
|---|---|
new Scene() | Erstelle eine leere Szene |
Scene.FromFile(path) | Statischer Helfer: Öffne eine Datei und gib die geladene Szene zurück |
scene.Open(path, format?) | Lade eine Datei in eine vorhandene Szene |
scene.Open(stream, format) | Aus einem Stream laden |
scene.Save(path, format?) | In einer Datei speichern |
scene.Save(stream, format) | In einem Stream speichern |
scene.RootNode | Root Node der Szenenhierarchie |
scene.AssetInfo | Metadatenblock (Ersteller, Zeitstempel, Einheiten) |
scene.AssetInfo.ApplicationName | Anwendungsname, der in die Datei eingebettet ist |
scene.AssetInfo.UnitScaleFactor | Einheitsskala der Szene relativ zu Metern |
Siehe auch
- Aspose.3D for .NET — Enterprise Documentation
- Arbeiten mit dem Szenengraph — navigieren und die Knotenhierarchie bearbeiten
- Formatunterstützung — alle unterstützten Eingabe- und Ausgabeformate