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
| Member | Descriçã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.RootNode | Raiz Node da hierarquia de cena |
scene.AssetInfo | Bloco de metadados (criador, carimbos de data/hora, unidades) |
scene.AssetInfo.ApplicationName | Nome do aplicativo incorporado no arquivo |
scene.AssetInfo.UnitScaleFactor | Escala da unidade da cena relativa a metros |
Ver também
- Aspose.3D for .NET — Enterprise Documentation
- Trabalhando com o Grafo de Cena — navegar e modificar a hierarquia de nós
- Suporte a Formatos — todos os formatos de entrada e saída suportados