Aspose.3D FOSS for .NET hét 3D fájlformátumot támogat: OBJ, STL, glTF, GLB, FBX, Collada, és 3MF. Ez a bejegyzés egy gyakorlati, formátumról-formátumra útmutató, amely bemutatja, hogyan töltsük be és mentsük el mindegyiket, milyen beállítások állnak rendelkezésre, és hogyan konvertálhatók egymás között.
Minden példa a következőt használja: Aspose.ThreeD névtér:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
NuGet csomag:
dotnet add package Aspose.3D --version 26.1.0
OBJ (Wavefront)
Az OBJ egy széles körben támogatott szöveges formátum a hálógeometriához. Aspose.3D FOSS betölti az OBJ fájlokat a hozzájuk tartozó .mtl anyagfájlokat.
OBJ betöltése
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Betöltés beállításokkal
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
Mentés OBJ-ként
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.obj");
OBJ mentési beállításokkal
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (Stereolithography)
Az STL a 3D nyomtatás szabványos formátuma. Nyers háromszögelt geometriát tárol anyagok vagy hierarchia nélkül. Aspose.3D FOSS támogatja a bináris és az ASCII STL-t is.
STL betöltése
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Mentés STL-ként
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
STL mentési beállításokkal
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL körutazás
// 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 és GLB
A glTF a modern szabvány a webes és valós idejű 3D-hez. Támogatja a PBR anyagokat, a teljes jelenet hierarchiákat, és a hatékony bináris csomagolást (GLB).
glTF betöltése
var scene = new Scene();
scene.Open("model.gltf");
Betöltés beállításokkal
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
Mentés glTF-ként
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
Mentés GLB-ként (Bináris glTF)
Önálló bináris .glb fájl, mentsünk egy .glb kiterjesztéssel. A könyvtár a bináris glTF formátumot a kiterjesztésből következteti:
scene.Save("output.glb");
FBX (Filmbox)
Az FBX széles körben használt a játékfejlesztésben és a digitális tartalomkészítésben. Aspose.3D FOSS for .NET támogatja az FBX importálást és exportálást mind ASCII, mind bináris módban.
FBX betöltése
var scene = new Scene();
scene.Open("model.fbx");
Betöltés beállításokkal
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
Mentés FBX ASCII-ként
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);
Mentés FBX binárisként
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 betöltése
var scene = new Scene();
scene.Open("model.3mf");
Betöltés beállításokkal
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
Mentés 3MF formátumba
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
Mentés beállításokkal
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
Folyam-alapú I/O
Minden formátum támogatja a betöltést és a mentést folyamatokból, ami hasznos webszolgáltatások és felhőfeldolgozás esetén:
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);
Formátumfelismerés
A könyvtár képes automatikusan felismerni a formátumokat a fájlkiterjesztések vagy a folyamat tartalma alapján:
// 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
Kötegelt konverzió
Több fájl konvertálásához iteráljon egy könyvtáron, és konvertálja az egyes fájlokat:
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);
}
Formátum-összehasonlítás
| Funkció | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| Anyagok | MTL | Nem | PBR | Igen | Igen |
| Jelenet hierarchia | Nem | Nem | Igen | Igen | Igen |
| Animációs stubok | Nem | Nem | Igen | Igen | Nem |
| Bináris mód | Nem | Igen | GLB | Igen | ZIP |
| 3D printing ready | Korlátozott | Igen | Nem | Nem | Igen |
| Webes kézbesítés | Nem | Nem | Igen | Nem | Nem |
Összefoglalás
Aspose.3D FOSS a .NET számára egyetlen, konzisztens API-t biztosít, amely minden főbb 3D fájlformátummal való munkához használható. A minta mindig ugyanaz: hozz létre egy Scene, hívja Open() a betöltéshez, opcionálisan konfigurálja a formátum-specifikus beállításokat, és hívja Save() az exportáláshoz. A formátumfelismerés, a stream-alapú I/O és a kötegelt konverzió egyszerűvé teszi az integrálást bármely .NET csővezetékbe.
További információkért:
- API-referencia – részletes osztály- és metódusdokumentáció.
- Tudásbázis – gyakorlati útmutató cikkek.
- GitHub – forráskód és hibakövető.