Scènebeheer
Scènebeheer
De Scene class is het toegangspunt voor alle 3D-content in Aspose.3D voor .NET. Het biedt methoden om scènes vanaf nul te creëren, bestaande bestanden in elk ondersteund formaat te laden, op te slaan naar elk doelformaat en de metadata van de scène te inspecteren.
Scènes maken en openen
Maak een lege scène met new Scene(), of laad vanuit een bestand:
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 detecteert automatisch het formaat aan de hand van de bestandsextensie en magic bytes. Gebruik de overload FileFormat wanneer de extensie dubbelzinnig of afwezig is.
Scènes opslaan
Sla een scène op naar een bestand of stream in elk ondersteund uitvoerformaat:
// 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-inhoud wissen
Om alle knooppunten en assets uit een scene te verwijderen terwijl het Scene object behouden blijft:
// Remove all direct children of the root node
scene.RootNode.ChildNodes.Clear();
// Or replace the scene entirely
scene = new Scene();Scene.Clear() is beschikbaar en wist de scene-inhoud, waardoor de standaardinstellingen worden hersteld; maak eventueel een nieuw Scene exemplaar aan zoals hierboven weergegeven.
Scene-metadata
De AssetInfo eigenschap van een Scene toont metadata die is ingebed in ondersteunde formaten (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);Stel metadata in vóór het opslaan om deze te behouden in het uitvoerbestand:
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 | Beschrijving |
|---|---|
new Scene() | Maak een lege scene |
Scene.FromFile(path) | Statische helper: open een bestand en retourneer de geladen scene |
scene.Open(path, format?) | Laad een bestand in een bestaande scene |
scene.Open(stream, format) | Laad van een stream |
scene.Save(path, format?) | Opslaan naar een bestand |
scene.Save(stream, format) | Opslaan naar een stream |
scene.RootNode | Root Node van de scènehiërarchie |
scene.AssetInfo | Metagegevensblok (maker, tijdstempels, eenheden) |
scene.AssetInfo.ApplicationName | Toepassingsnaam ingebed in het bestand |
scene.AssetInfo.UnitScaleFactor | Scène-eenheidsschaal ten opzichte van meters |
Zie ook
- Aspose.3D for .NET — Enterprise Documentation
- Werken met de scènegrafiek — navigeer en wijzig de knooppunt-hiërarchie
- Formaatondersteuning — alle ondersteunde invoer- en uitvoerformaten