Aspose.3D FOSS for .NET understøtter syv 3D-filformater: OBJ, STL, GFT-værdi, GLB, FBX, Collada (føde), og 3MF.Denne artikel er en praktisk vejledning format for format, der viser hvordan man indlæser og gemmer hver enkelt af dem, hvilke muligheder der findes, og hvordan du konverterer mellem dem.

Alle eksempler anvender den Aspose.ThreeD navneområde:

using Aspose.ThreeD;
using Aspose.ThreeD.Formats;

NuGet- pakke:

dotnet add package Aspose.3D --version 26.1.0

OBJ (bølgefront)

OBJ er et bredt understøttet tekstbaseret format til meshgeometri. Aspose.3D FOSS indlæser OB J-filer sammen med deres ledsager. .mtl materielle filer.

Lade OBJ

var scene = new Scene();
scene.Open("model.obj");

Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);

Indlæsning med muligheder

var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);

Opbevaring 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 opslagsalternativer

var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);

STL (stereolitografi)

STL er standardformatet til 3D-udskrivning. Det gemmer rå trianguleret geometri uden materialer eller hierarki. Aspose.3D FOSS understøtter både binær og ASCII STl.

Lade- og aflastningstoldkort (STL)

var scene = new Scene();
scene.Open("part.stl");

Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);

Indsparing som STL

var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);

scene.Save("output.stl");

STL med opslagsalternativer

var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);

STL rundrejse

// 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 standard for web og real-time 3D. Den understøtter PBR materialer, fuld scene hierarkier og effektiv binær pakning (GLB).

Lade glTF

var scene = new Scene();
scene.Open("model.gltf");

Indlæsning med muligheder

var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);

Sparing som glTF

var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);

scene.Save("output.gltf");

Sparing som GLB (binær glTF)

For at producere en selvstændig binær .glb fil, gem med en .glb Biblioteket udleder det binære glTF-format fra udvidelsen:

scene.Save("output.glb");

FBX (Filmbox)

FBX anvendes i vid udstrækning til spiludvikling og digital indholdsopbygning. Aspose.3D FOSS for .NET understøtter FBx. import og eksport.Export producerer binær FBX; ASCII FBx-eksportråd findes i kildekoden, men opkaldes ikke af eksportbanen i denne version. FbxSaveOptions klassen giver standardindstillinger.

Lade FBX ind

var scene = new Scene();
scene.Open("model.fbx");

Indlæsning med muligheder

var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);

Opbevaring 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");

Sparing med muligheder

// Use FbxSaveOptions for format-specific defaults
var opts = new FbxSaveOptions();
scene.Save("output.fbx", opts);

3MF (3D Manufacturing Format)

3MF is a modern 3D printing format developed by the 3MF Consortium. It supports rich metadata, materials, and multi-object scenes in a single ZIP-based package.

Indlæsning 3MF

var scene = new Scene();
scene.Open("model.3mf");

Indlæsning med muligheder

var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);

Indtægtsbevilling som 3MF

var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);

scene.Save("output.3mf");

Sparing med muligheder

var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);

Strømbaseret ind/ud

Alle formater understøtter indlæsning fra og opslag til streams, hvilket er nyttigt for webtjenester og cloudbehandling:

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

Formatdetektering

Biblioteket kan automatisk opdage formater fra filudvidelser eller streamingindhold:

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

Batch-omregning

For at konvertere flere filer, skal du gentage over en katalog og konverterer 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

Fælles karakteristikaOBJSTLGFT-værdiFBX3MF
MaterialerMTL- Nej, jeg gør det ikke.PBR- Ja, jeg gør.- Ja, jeg gør.
Scenerarki- Nej, jeg gør det ikke.- Nej, jeg gør det ikke.- Ja, jeg gør.- Ja, jeg gør.- Ja, jeg gør.
Animationsstubs- Nej, jeg gør det ikke.- Nej, jeg gør det ikke.- Ja, jeg gør.- Ja, jeg gør.- Nej, jeg gør det ikke.
Binær tilstand- Nej, jeg gør det ikke.- Ja, jeg gør.GLB- Ja, jeg gør.ZIP
3D printing readyBegrænset- Ja, jeg gør.- Nej, jeg gør det ikke.- Nej, jeg gør det ikke.- Ja, jeg gør.
Weblevering- Nej, jeg gør det ikke.- Nej, jeg gør det ikke.- Ja, jeg gør.- Nej, jeg gør det ikke.- Nej, jeg gør det ikke.

Sammendrag af de foreliggende oplysninger

3D FOSS for .NET giver dig et enkelt, ensartet API til at arbejde med alle de store 3d-filformater. Mønstret er altid det samme: oprette en Scene,- Ring til mig. Open() at indlæse, valgfrit konfigurere format-specifikke muligheder og opfordre til Save() Formatdetektion, streambaseret I/O og batchkonvertering gør det nemt at integrere i enhver .NET-pipeline.

Yderligere oplysninger: