Zarządzanie sceną
Zarządzanie sceną
Klasa Scene jest punktem wejścia dla całej zawartości 3D w Aspose.3D dla .NET. Udostępnia metody do tworzenia scen od podstaw, wczytywania istniejących plików w dowolnym obsługiwanym formacie, zapisywania do dowolnego formatu docelowego oraz przeglądania metadanych sceny.
Tworzenie i otwieranie scen
Utwórz pustą scenę za pomocą new Scene(), lub wczytaj z pliku:
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 automatycznie wykrywa format na podstawie rozszerzenia pliku i bajtów magicznych. Użyj przeciążenia FileFormat, gdy rozszerzenie jest niejednoznaczne lub nieobecne.
Zapisywanie scen
Zapisz scenę do pliku lub strumienia w dowolnym obsługiwanym formacie wyjściowym:
// 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);Czyszczenie zawartości sceny
Aby usunąć wszystkie węzły i zasoby ze sceny, zachowując obiekt Scene:
// Remove all direct children of the root node
scene.RootNode.ChildNodes.Clear();
// Or replace the scene entirely
scene = new Scene();Scene.Clear() jest dostępny i czyści zawartość sceny, przywracając domyślne ustawienia; alternatywnie, utwórz nową instancję Scene, jak pokazano powyżej.
Metadane sceny
Właściwość AssetInfo w Scene udostępnia metadane osadzone w obsługiwanych formatach (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);Ustaw metadane przed zapisem, aby zachować je w pliku wyjściowym:
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 | Opis |
|---|---|
new Scene() | Utwórz pustą scenę |
Scene.FromFile(path) | Statyczny pomocnik: otwórz plik i zwróć wczytaną scenę |
scene.Open(path, format?) | Wczytaj plik do istniejącej sceny |
scene.Open(stream, format) | Wczytaj ze strumienia |
scene.Save(path, format?) | Zapisz do pliku |
scene.Save(stream, format) | Zapisz do strumienia |
scene.RootNode | Korzeń Node hierarchii sceny |
scene.AssetInfo | Blok metadanych (twórca, znaczniki czasu, jednostki) |
scene.AssetInfo.ApplicationName | Nazwa aplikacji osadzona w pliku |
scene.AssetInfo.UnitScaleFactor | Skala jednostki sceny względem metrów |
Zobacz także
- Aspose.3D for .NET — Enterprise Documentation
- Praca z grafem sceny — nawiguj i modyfikuj hierarchię węzłów
- Obsługa formatów — wszystkie obsługiwane formaty wejściowe i wyjściowe