Керування сценами
Управління сценами
Клас Scene є точкою входу для всього 3D-вмісту в Aspose.3D для .NET. Він надає методи для створення сцен з нуля, завантаження існуючих файлів у будь-якому підтримуваному форматі, збереження у будь-який цільовий формат та перегляду метаданих сцени.
Створення та відкриття сцен
Створіть порожню сцену за допомогою new Scene(), або завантажте її з файлу:
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 автоматично визначає формат за розширенням файлу та магічними байтами. Використовуйте перевантаження FileFormat, коли розширення неоднозначне або відсутнє.
Збереження сцен
Збережіть сцену у файл або потік у будь-якому підтримуваному форматі виведення:
// 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);Очищення вмісту сцени
Щоб видалити всі вузли та ресурси зі сцени, зберігаючи об’єкт Scene:
// Remove all direct children of the root node
scene.RootNode.ChildNodes.Clear();
// Or replace the scene entirely
scene = new Scene();Scene.Clear() доступний і очищає вміст сцени, відновлюючи налаштування за замовчуванням; альтернативно, створіть новий екземпляр Scene, як показано вище.
Метадані сцени
Властивість AssetInfo у Scene надає доступ до метаданих, вбудованих у підтримувані формати (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);Встановіть метадані перед збереженням, щоб зберегти їх у вихідному файлі:
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 | Опис |
|---|---|
new Scene() | Створити порожню сцену |
Scene.FromFile(path) | Статичний допоміжний метод: відкрити файл і повернути завантажену сцену |
scene.Open(path, format?) | Завантажити файл у існуючу сцену |
scene.Open(stream, format) | Завантажити з потоку |
scene.Save(path, format?) | Зберегти у файл |
scene.Save(stream, format) | Зберегти у потік |
scene.RootNode | Корінь Node ієрархії сцени |
scene.AssetInfo | Блок метаданих (створювач, часові мітки, одиниці) |
scene.AssetInfo.ApplicationName | Назва програми, вбудована у файл |
scene.AssetInfo.UnitScaleFactor | Масштаб одиниці сцени відносно метрів |
Дивіться також
- Aspose.3D for .NET — Enterprise Documentation
- Робота з графом сцени — навігація та редагування ієрархії вузлів
- Підтримка форматів — всі підтримувані формати вводу та виводу