Aspose.3D FOSS for .NET støtter syv 3D‑filformater: OBJ, STL, glTF, GLB, FBX, Collada, og 3MF. Dette innlegget er en praktisk, format‑for‑format guide som viser hvordan du laster inn og lagrer hver av dem, hvilke alternativer som er tilgjengelige, og hvordan du konverterer mellom dem.
Alle eksempler bruker Aspose.ThreeD‑navnerommet:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
NuGet-pakke:
dotnet add package Aspose.3D --version 26.1.0
OBJ (Wavefront)
OBJ er et bredt støttet tekstbasert format for mesh-geometri. Aspose.3D FOSS laster OBJ-filer sammen med deres tilhørende .mtl materialfiler.
Laster OBJ
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Laste inn med alternativer
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
Lagring som OBJ
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.obj");
OBJ med lagringsalternativer
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (Stereolitografi)
STL er standardformatet for 3D‑utskrift. Det lagrer rå triangulert geometri uten materialer eller hierarki. Aspose.3D FOSS støtter både binær og ASCII STL.
Laste STL
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Lagring som STL
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
STL med lagringsalternativer
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL-rundtur
// Load an STL file and re-save it -- geometry is preserved
var scene = new Scene();
scene.Open("original.stl");
scene.Save("copy.stl");
glTF 2.0 og GLB
glTF er den moderne standarden for web og sanntids‑3D. Den støtter PBR‑materialer, fullstendige scenehierarkier og effektiv binær pakking (GLB).
Laster glTF
var scene = new Scene();
scene.Open("model.gltf");
Laste inn med alternativer
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
Lagring som glTF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
Lagrer som GLB (Binary glTF)
For å lage en selvstendig binær .glb‑fil, lagre med en .glb‑utvidelse. Biblioteket infererer det binære glTF‑formatet fra utvidelsen:
scene.Save("output.glb");
FBX (Filmboks)
FBX er mye brukt i spillutvikling og digital innholdsopprettelse. Aspose.3D FOSS for .NET støtter FBX import og eksport. Eksport produserer binær FBX; ASCII FBX‑eksportkode finnes i kildekoden, men blir ikke kalt av eksportstien i denne versjonen. Klassen FbxSaveOptions gir standardinnstillinger.
Laste FBX
var scene = new Scene();
scene.Open("model.fbx");
Laste inn med alternativer
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
Lagring som FBX
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
// FBX export always produces binary FBX output
scene.Save("output.fbx");
Lagring med alternativer
// Use FbxSaveOptions for format-specific defaults
var opts = new FbxSaveOptions();
scene.Save("output.fbx", opts);
3MF (3D-produksjonsformat)
3MF er et moderne 3D‑utskriftsformat utviklet av 3MF Consortium. Det støtter rik metadata, materialer og scener med flere objekter i en enkelt ZIP-basert pakke.
Laste inn 3MF
var scene = new Scene();
scene.Open("model.3mf");
Laste inn med alternativer
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
Lagring som 3MF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
Lagring med alternativer
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
Strøm-basert I/O
Alle formater støtter lasting fra og lagring til strømmer, noe som er nyttig for webtjenester og skybehandling:
using var stream = File.OpenRead("model.obj");
var scene = new Scene();
var opts = new ObjLoadOptions();
scene.Open(stream, opts);
// Save to a memory stream
using var output = new MemoryStream();
var saveOpts = new GltfSaveOptions();
scene.Save(output, saveOpts);
Formatgjenkjenning
Biblioteket kan automatisk oppdage formater fra filendelser eller strøminnhold:
// Auto-detect from extension
var scene = new Scene();
scene.Open("model.obj"); // Detects OBJ from .obj extension
// Auto-detect from stream content
using var stream = File.OpenRead("model.obj");
scene.Open(stream); // Inspects stream content to determine format
Batchkonvertering
For å konvertere flere filer, iterer over en katalog og konverter hver enkelt:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
var inputDir = "assets/";
var outputDir = "converted/";
foreach (var file in Directory.GetFiles(inputDir, "*.fbx"))
{
var scene = new Scene();
scene.Open(file);
var outputPath = Path.Combine(outputDir,
Path.GetFileNameWithoutExtension(file) + ".glb");
scene.Save(outputPath);
Console.WriteLine("Converted: " + file);
}
Format sammenligning
| Funksjon | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| Materialer | MTL | Nei | PBR | Ja | Ja |
| Sceneshierarki | Nei | Nei | Ja | Ja | Ja |
| Animasjonsstubber | Nei | Nei | Ja | Ja | Nei |
| Binær modus | Nei | Ja | GLB | Ja | ZIP |
| Klar for 3D-utskrift | Begrenset | Ja | Nei | Nei | Ja |
| Web-levering | Nei | Nei | Ja | Nei | Nei |
Sammendrag
Aspose.3D FOSS for .NET gir deg et enkelt, konsistent API for å arbeide med alle større 3D‑filformater. Mønsteret er alltid det samme: opprett en Scene, kall Open() for å laste, eventuelt konfigurer formatspesifikke alternativer, og kall Save() for å eksportere. Formatgjenkjenning, strøm‑basert I/O og batch‑konvertering gjør det enkelt å integrere i enhver .NET‑pipeline.
For mer informasjon:
- API Reference – detaljert klasse‑ og metodokumentasjon.
- Knowledge Base – praktiske hvordan‑gjøre‑artikler.
- GitHub – kildekode og feilsporingssystem.