Aspose.3D FOSS za .NET podržava sedam 3D formata datoteka: OBJ, STL, glTF, GLB, FBX, Collada, i 3MF. Ovaj članak je praktični, format-po-format vodič koji pokazuje kako učitati i spremiti svaki od njih, koje su dostupne opcije i kako ih međusobno pretvoriti.

Svi primjeri koriste Aspose.ThreeD imenski prostor:

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

NuGet paket:

dotnet add package Aspose.3D --version 26.1.0

OBJ (Wavefront)

OBJ je široko podržani tekstualni format za geometriju mreže. Aspose.3D FOSS učitava OBJ datoteke zajedno s njihovim pratećim .mtl datotekama materijala.

Učitavanje OBJ

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

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

Učitavanje s opcijama

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

Spremanje kao OBJ

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

scene.Save("output.obj");

OBJ s opcijama spremanja

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

STL (Stereolitografija)

STL je standardni format za 3D ispis. Pohranjuje sirovu trianguliranu geometriju bez materijala ili hijerarhije. Aspose.3D FOSS podržava i binarni i ASCII STL.

Učitavanje STL

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

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

Spremanje kao STL

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

scene.Save("output.stl");

STL s opcijama spremanja

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

STL povratni put

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

glTF je moderni standard za web i real‑time 3D. Podržava PBR materijale, potpune hijerarhije scena i učinkovito binarno pakiranje (GLB).

Učitavanje glTF

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

Učitavanje s opcijama

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

Spremanje kao glTF

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

scene.Save("output.gltf");

Spremanje kao GLB (binarni glTF)

Za stvaranje samostalnog binarnog .glb datoteke, spremite s .glb ekstenzijom. Biblioteka zaključuje binarni glTF format iz ekstenzije:

scene.Save("output.glb");

FBX (Filmbox)

FBX se široko koristi u razvoju igara i stvaranju digitalnog sadržaja. Aspose.3D FOSS za .NET podržava FBX uvoz i izvoz u oba ASCII i binarna načina.

Učitavanje FBX

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

Učitavanje s opcijama

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

Spremanje kao FBX ASCII

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

Spremanje kao 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.

Učitavanje 3MF

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

Učitavanje s opcijama

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

Spremanje kao 3MF

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

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

Spremanje s opcijama

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

U/I temeljeno na strujama

Svi formati podržavaju učitavanje iz i spremanje u streamove, što je korisno za web usluge i obradu u oblaku:

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

Otkrivanje formata

Biblioteka može automatski otkriti formate na temelju ekstenzija datoteka ili sadržaja streama:

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

Serijska konverzija

Za konverziju više datoteka, iterirajte kroz direktorij i konvertirajte svaku pojedinačno:

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

Usporedba formata

ZnačajkaOBJSTLglTFFBX3MF
MaterijaliMTLNePBRDaDa
Hijerarhija sceneNeNeDaDaDa
Stubovi animacijeNeNeDaDaNe
Binarni načinNeDaGLBDaZIP
3D printing readyOgraničenoDaNeNeDa
Web isporukaNeNeDaNeNe

Sažetak

Aspose.3D FOSS za .NET daje vam jedinstveno, dosljedno API za rad sa svim glavnim 3D formatima datoteka. Uzorak je uvijek isti: stvorite Scene, pozovite Open() za učitavanje, po želji konfigurirajte opcije specifične za format i pozovite Save() za izvoz. Otkrivanje formata, I/O temeljeno na strujama i grupna konverzija čine jednostavnim integriranje u bilo koji .NET pipeline.

Za više informacija: