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

MemberOpis
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.RootNodeKorzeń Node hierarchii sceny
scene.AssetInfoBlok metadanych (twórca, znaczniki czasu, jednostki)
scene.AssetInfo.ApplicationNameNazwa aplikacji osadzona w pliku
scene.AssetInfo.UnitScaleFactorSkala jednostki sceny względem metrów

Zobacz także

 Polski