Gerenciamento de Cena

Gerenciamento de Cena

A classe Scene é o ponto de entrada para todo o conteúdo 3D em Aspose.3D para .NET. Ela fornece métodos para criar cenas do zero, carregar arquivos existentes em qualquer formato suportado, salvar em qualquer formato de destino e inspecionar os metadados da cena.


Criando e Abrindo Cenas

Crie uma cena vazia com new Scene(), ou carregue a partir de um arquivo:

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 detecta automaticamente o formato a partir da extensão do arquivo e dos bytes mágicos. Use a sobrecarga FileFormat quando a extensão for ambígua ou ausente.


Salvando Cenas

Salve uma cena em um arquivo ou fluxo em qualquer formato de saída suportado:

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

Limpando o Conteúdo da Cena

Para remover todos os nós e recursos de uma cena mantendo o objeto Scene:

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

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

Scene.Clear() está disponível e limpa o conteúdo da cena, restaurando as configurações padrão; alternativamente, crie uma nova instância Scene como mostrado acima.


Metadados da Cena

A propriedade AssetInfo em um Scene expõe metadados incorporados em formatos suportados (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);

Defina os metadados antes de salvar para preservá-los no arquivo de saída:

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

MemberDescrição
new Scene()Criar uma cena vazia
Scene.FromFile(path)Auxiliar estático: abrir um arquivo e retornar a cena carregada
scene.Open(path, format?)Carregar um arquivo em uma cena existente
scene.Open(stream, format)Carregar de um fluxo
scene.Save(path, format?)Salvar em um arquivo
scene.Save(stream, format)Salvar em um fluxo
scene.RootNodeRaiz Node da hierarquia de cena
scene.AssetInfoBloco de metadados (criador, carimbos de data/hora, unidades)
scene.AssetInfo.ApplicationNameNome do aplicativo incorporado no arquivo
scene.AssetInfo.UnitScaleFactorEscala da unidade da cena relativa a metros

Ver também

 Português