Aspose.3D FOSS za .NET podržava sedam 3D formata datoteka: OBJ, STL, GTF-a, GLB, FBX, Srednja koljena, i 3MF.Ovaj post je praktičan, format po format vodič koji pokazuje kako učitati i sačuvati svaki od njih, koje opcije su dostupne i kako pretvoriti između njih.
Svi primjeri koriste: Aspose.ThreeD ime prostora:
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 tekstni format za mrežnu geometriju. Aspose.3D FOSS učitava OB J datoteke zajedno s njihovim pratiteljem. .mtl materijalne datoteke.
Uređaj za punjenje OBJ-a
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Opcije za preuzimanje podataka
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
Uštedjeti 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 za čuvanje
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (Stereolitografija)
STL je standardni format za 3D tisak. Shrani sirovu triangulaciju bez materijala ili hijerarhije. Aspose.3D FOSS podržava i binarni i ASCII STl.
Uređaj za prevoz i prijevoz
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Ušteda kao STL
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
STL s opcijama za pohranjivanje
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL povratno putovanje
// Load an STL file and re-save it -- geometry is preserved
var scene = new Scene();
scene.Open("original.stl");
scene.Save("copy.stl");
U ovom članku se primjenjuje sljedeće:
glTF je moderni standard za web i 3D u stvarnom vremenu. Podržava PBR materijale, cjelovite hijerarhije scena i učinkovito binarno pakiranje (GLB).
Uloženje glTF-a
var scene = new Scene();
scene.Open("model.gltf");
Opcije za preuzimanje podataka
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
Ušteda kao glTF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
Uređivanje kao GLB (binarni glTF)
Da proizvedemo samostalni binarni sustav. .glb datoteka, sačuvajte s .glb Biblioteka izvodi binarni format glTF iz proširenja:
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.Export proizvodi binarni FBX; ASCII FBx kod izvoza postoji u izvornom kodu, ali ga putanje za izvoz ne poziva u ovoj verziji. FbxSaveOptions class pruža podrazumijevana postavka.
Upisivanje FBX-a
var scene = new Scene();
scene.Open("model.fbx");
Opcije za preuzimanje podataka
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
Sačuvati kao 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");
Uštedjeti s izborima
// 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.
Uloženje 3MF
var scene = new Scene();
scene.Open("model.3mf");
Opcije za preuzimanje podataka
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
Uređivanje kao 3MF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
Uštedjeti s izborima
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
Uputstva i ispuštanja na temelju toka
Svi formati podržavaju učitavanje iz i čuvanje u strimove, što je korisno za web usluge i oblaknu obradu:
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);
Detekcija formata
Biblioteka može automatski otkriti formate iz proširenja datoteke ili sadržaja strima:
// 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
Preobrazba serije
Za pretvaranje više datoteka, ponovite preko direktorija i konvertirajte svaki:
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
| Oznaka: | OBJ | STL | GTF-a | FBX | 3MF |
|---|---|---|---|---|---|
| Materijali | MTL | Ne, ne mogu. | PBR | - Da, u redu. | - Da, u redu. |
| Hijerarhija scena | Ne, ne mogu. | Ne, ne mogu. | - Da, u redu. | - Da, u redu. | - Da, u redu. |
| Snimke animacija | Ne, ne mogu. | Ne, ne mogu. | - Da, u redu. | - Da, u redu. | Ne, ne mogu. |
| Binarni način | Ne, ne mogu. | - Da, u redu. | GLB | - Da, u redu. | ZIP |
| 3D printing ready | Ograničeno | - Da, u redu. | Ne, ne mogu. | Ne, ne mogu. | - Da, u redu. |
| Isporuka putem interneta | Ne, ne mogu. | Ne, ne mogu. | - Da, u redu. | Ne, ne mogu. | Ne, ne mogu. |
Rezultati:
3D FOSS za .NET vam daje jedinstveni, dosljedni API-a za rad s svim glavnim formatima datoteka u 3d. Scene,-Zovi me. Open() za učitavanje, opcionalno konfiguriranje specifičnih opcija formata i pozivanje Save() Detekcija formata, I/O na temelju toka i konverzija serija čine ga jednostavanim za integraciju u bilo koji .NET pipeline.
Više informacija:
- Odgovor na API – detaljna dokumentacija o klasi i metodi.
- Osnova znanja – praktični članci o tome kako.
- GitHub – izvorni kod i tracker problema.