Gestione della scena

Gestione delle scene

La classe Scene è il punto di ingresso per tutti i contenuti 3D in Aspose.3D per .NET. Fornisce metodi per creare scene da zero, caricare file esistenti in qualsiasi formato supportato, salvare in qualsiasi formato di destinazione e ispezionare i metadati della scena.


Creazione e apertura delle scene

Crea una scena vuota con new Scene(), oppure caricala da un file:

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 rileva automaticamente il formato dall’estensione del file e dai byte magici. Usa il overload FileFormat quando l’estensione è ambigua o assente.


Salvataggio delle scene

Salva una scena in un file o stream in qualsiasi formato di output supportato:

// 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);

Cancellazione del contenuto della scena

Per rimuovere tutti i nodi e le risorse da una scena mantenendo l’oggetto Scene:

// Remove all direct children of the root node
scene.RootNode.ChildNodes.Clear();

// Or replace the scene entirely
scene = new Scene();

Scene.Clear() è disponibile e cancella il contenuto della scena, ripristinando le impostazioni predefinite; in alternativa, crea una nuova istanza Scene come mostrato sopra.


Metadati della scena

La proprietà AssetInfo su un Scene espone i metadati incorporati nei formati supportati (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);

Imposta i metadati prima di salvare per conservarli nel file di output:

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

MemberDescrizione
new Scene()Crea una scena vuota
Scene.FromFile(path)Helper statico: apri un file e restituisci la scena caricata
scene.Open(path, format?)Carica un file in una scena esistente
scene.Open(stream, format)Carica da un flusso
scene.Save(path, format?)Salva su un file
scene.Save(stream, format)Salva su un flusso
scene.RootNodeRadice Node della gerarchia della scena
scene.AssetInfoBlocco metadati (creatore, timestamp, unità)
scene.AssetInfo.ApplicationNameNome dell’applicazione incorporato nel file
scene.AssetInfo.UnitScaleFactorScala dell’unità della scena rispetto ai metri

Vedi anche

 Italiano