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
| Ominaisuus | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| Materiaalit | MTL | Ei | PBR | Kyllä | Kyllä |
| Kohtauksen hierarkia | Ei | Ei | Kyllä | Kyllä | Kyllä |
| Animaatiopohjat | Ei | Ei | Kyllä | Kyllä | Ei |
| Binääritila | Ei | Kyllä | GLB | Kyllä | ZIP |
| 3D printing ready | Rajoitettu | Kyllä | Ei | Ei | Kyllä |
| Web-toimitus | Ei | Ei | Kyllä | Ei | Ei |
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ä.