Aspose.3D FOSS for .NET podporuje sedem 3D formátov súborov: OBJ, STL, glTF, GLB, FBX, Collada a 3MF. Tento príspevok je praktickým, formát po formáte, sprievodcom, ktorý ukazuje, ako načítať a uložiť každý z nich, aké možnosti sú k dispozícii a ako ich konvertovať medzi sebou.
Všetky príklady používajú Aspose.ThreeD namespace:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
Balík NuGet:
dotnet add package Aspose.3D --version 26.1.0
OBJ (Wavefront)
OBJ je široko podporovaný textový formát pre geometriu siete. Aspose.3D FOSS načítava OBJ súbory spolu s ich sprievodnými .mtl materiálovými súbormi.
Načítanie OBJ
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Načítanie s možnosťami
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
Ukladanie ako OBJ
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.obj");
OBJ s možnosťami ukladania
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (Stereolitografia)
STL je štandardný formát pre 3D tlač. Ukladá surovú triangulovanú geometriu bez materiálov alebo hierarchie. Aspose.3D FOSS podporuje binárny aj ASCII STL.
Načítanie STL
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Ukladanie ako STL
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
STL s možnosťami ukladania
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL spätný prechod
// 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 a GLB
glTF je moderný štandard pre web a real-time 3D. Podporuje PBR materiály, úplné hierarchie scény a efektívne binárne balenie (GLB).
Načítanie glTF
var scene = new Scene();
scene.Open("model.gltf");
Načítanie s možnosťami
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
Ukladanie ako glTF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
Ukladanie ako GLB (binárny glTF)
Ak chcete vytvoriť samostatný binárny .glb súbor, uložte ho s príponou .glb. Knižnica odvodí binárny formát glTF z prípony:
scene.Save("output.glb");
FBX (Filmbox)
FBX je široko používaný vo vývoji hier a tvorbe digitálneho obsahu. Aspose.3D FOSS pre .NET podporuje FBX import a export. Export vytvára binárny FBX; kód pre export ASCII FBX existuje v zdrojovom kóde, ale nie je volaný exportnou cestou v tejto verzii. Trieda FbxSaveOptions poskytuje predvolené nastavenia.
Načítanie FBX
var scene = new Scene();
scene.Open("model.fbx");
Načítanie s možnosťami
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
Ukladanie ako 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");
Ukladanie s možnosťami
// Use FbxSaveOptions for format-specific defaults
var opts = new FbxSaveOptions();
scene.Save("output.fbx", opts);
3MF (Formát 3D výroby)
3MF je moderný formát pre 3D tlač vyvinutý 3MF Consortium. Podporuje bohaté metadáta, materiály a viacobjektové scény v jednom balíku založenom na ZIP.
Načítanie 3MF
var scene = new Scene();
scene.Open("model.3mf");
Načítanie s možnosťami
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
Ukladanie ako 3MF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
Ukladanie s možnosťami
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
Vstup/výstup založený na prúdoch
Všetky formáty podporujú načítanie z a ukladanie do streamov, čo je užitočné pre webové služby a cloudové spracovanie:
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);
Detekcia formátu
Knižnica dokáže automaticky rozpoznať formáty podľa prípon súborov alebo obsahu streamu:
// 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
Dávková konverzia
Pre konverziu viacerých súborov iterujte cez adresár a konvertujte každý súbor:
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);
}
Porovnanie formátov
| Vlastnosť | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| Materiály | MTL | Nie | PBR | Áno | Áno |
| Hierarchia scény | Nie | Nie | Áno | Áno | Áno |
| Animácie (základné) | Nie | Nie | Áno | Áno | Nie |
| Binárny režim | Nie | Áno | GLB | Áno | ZIP |
| Pripravené na 3D tlač | Obmedzené | Áno | Nie | Nie | Áno |
| Webové doručenie | Nie | Nie | Áno | Nie | Nie |
Zhrnutie
Aspose.3D FOSS pre .NET vám poskytuje jediné, konzistentné API na prácu so všetkými hlavnými 3D formátmi súborov. Vzor je vždy rovnaký: vytvorte Scene, zavolajte Open() na načítanie, voliteľne nakonfigurujte špecifické možnosti formátu a zavolajte Save() na export. Detekcia formátu, vstup/výstup založený na prúdoch a hromadná konverzia uľahčujú integráciu do akéhokoľvek .NET pipeline.
Pre viac informácií:
- API Reference – podrobná dokumentácia tried a metód.
- Knowledge Base – praktické návody.
- GitHub – zdrojový kód a sledovanie problémov.