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

MemberBeschreibung
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.RootNodeRoot Node der Szenenhierarchie
scene.AssetInfoMetadatenblock (Ersteller, Zeitstempel, Einheiten)
scene.AssetInfo.ApplicationNameAnwendungsname, der in die Datei eingebettet ist
scene.AssetInfo.UnitScaleFactorEinheitsskala der Szene relativ zu Metern

Siehe auch

 Deutsch