Aspose.3D FOSS for .NET tukee seitsemää 3D-tiedostomuotoa: OBJ, STL, glTF, GLB, FBX, Collada, ja 3MF. Tämä julkaisu on käytännön, formaatti kerrallaan -opas, joka näyttää miten ladata ja tallentaa jokainen, mitä vaihtoehtoja on saatavilla, ja miten muuntaa niiden välillä.

Kaikki esimerkit käyttävät Aspose.ThreeD nimialuetta:

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

NuGet-paketti:

dotnet add package Aspose.3D --version 26.1.0

OBJ (Wavefront)

OBJ on laajasti tuettu tekstipohjainen formaatti verkkomallien geometriassa. Aspose.3D FOSS lataa OBJ-tiedostoja niiden mukana tulevien .mtl materiaalitiedostojen.

OBJ:n lataaminen

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

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

Lataus asetuksilla

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

Tallennus OBJ-muodossa

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

scene.Save("output.obj");

OBJ tallennusasetuksilla

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

STL (Stereolithography)

STL on 3D-tulostuksen vakiomuoto. Se tallentaa raakan kolmioitu geometrian ilman materiaaleja tai hierarkiaa. Aspose.3D FOSS tukee sekä binääristä että ASCII STL:ää.

STL:n lataaminen

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

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

Tallennus STL-muodossa

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

scene.Save("output.stl");

STL tallennusasetuksilla

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

STL-paluukierros

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

glTF on moderni standardi verkossa ja reaaliaikaisessa 3D:ssä. Se tukee PBR-materiaaleja, täysiä kohtaushierarkioita ja tehokasta binaaripakkausta (GLB).

Ladataan glTF

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

Lataus asetuksilla

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

Tallennus glTF-muodossa

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

scene.Save("output.gltf");

Tallennus GLB-muodossa (binaarinen glTF)

Luodakseen itsenäisen binaarisen .glb tiedoston, tallenna käyttämällä .glb tiedostopäätettä. Kirjasto päättelee binaarisen glTF-muodon tiedostopäätteestä:

scene.Save("output.glb");

FBX (Filmbox)

FBX on laajasti käytetty pelikehityksessä ja digitaalisen sisällön luomisessa. Aspose.3D FOSS for .NET tukee FBX tuontia ja vientiä sekä ASCII- että binaaritiloissa.

FBX:n lataus

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

Lataus asetuksilla

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

Tallennus FBX ASCII -muodossa

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

var opts = new FbxSaveOptions() { IsAscii = true };
scene.Save("output.fbx", opts);

Tallennus FBX Binary

var opts = new FbxSaveOptions() { IsAscii = false };
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.

3MF:n lataus

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

Lataus asetuksilla

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

Tallennus 3MF-muodossa

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

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

Tallennus asetuksilla

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

Virtaan perustuva I/O

Kaikki formaatit tukevat lataamista virroista ja tallentamista virtoihin, mikä on hyödyllistä web-palveluissa ja pilviprosessoinnissa:

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

Formaattien tunnistus

Kirjasto voi automaattisesti tunnistaa formaatit tiedostopäätteistä tai virran sisällöstä:

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

Erämuunnos

Useita tiedostoja muunnettaessa käy läpi hakemisto ja muunna jokainen tiedosto:

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

Formaattien vertailu

OminaisuusOBJSTLglTFFBX3MF
MateriaalitMTLEiPBRKylläKyllä
Kohtauksen hierarkiaEiEiKylläKylläKyllä
AnimaatiopohjatEiEiKylläKylläEi
BinääritilaEiKylläGLBKylläZIP
3D printing readyRajoitettuKylläEiEiKyllä
Web-toimitusEiEiKylläEiEi

Yhteenveto

Aspose.3D FOSS for .NET tarjoaa sinulle yhdenmukaisen API:n, jonka avulla voit työskennellä kaikkien tärkeimpien 3D-tiedostomuotojen kanssa. Malli on aina sama: luo Scene, kutsu Open() lataamaan, valinnaisesti määrittämään formaattiin liittyvät asetukset, ja kutsua Save() vientiä. Formaattien tunnistus, suoratoistopohjainen I/O ja erämuunnos tekevät sen suoraviivaiseksi integroida mihin tahansa .NET-putkistoon.

Lisätietoja:

  • API-viite – yksityiskohtainen luokka- ja menetelmädokumentaatio.
  • Tietopankki – käytännön ohjeartikkelit.
  • GitHub – lähdekoodi ja vikajärjestelmä.