Aspose.3D FOSS pro .NET podporuje sedm 3D formátů souborů: OBJ, STL, glTF, GLB, FBX, Koláda,a) 3MF.Tento příspěvek je praktickým průvodcem formátu po formatu, který ukazuje, jak každý z nich načítat a uložit, jaké možnosti jsou k dispozici a jak mezi nimi přeměnit.
Všechny příklady používají: Aspose.ThreeD jmenovní prostor:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
Balíček NuGet:
dotnet add package Aspose.3D.FOSSOBJ (Wavefront)
OBJ je široce podporovaný textový formát pro geometrii sítí. Aspose.3D FOSS načte soubory OB J spolu se svými doprovodci. .mtl materiální soubory.
Naložení OBJ
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Naložení s možnostmi
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
Uložení jako 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žnostmi ukládání
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (stereolitografie)
STL je standardní formát pro 3D tisk. Ukládá surovou triangulační geometrii bez materiálů nebo hierarchie. Aspose.3D FOSS podporuje jak binární, tak ASCII ST L.
Naložení STL
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
Uložení jako STL
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
STL s možnostmi ukládání
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL - návrat a odchod
// 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í standard pro web a 3D v reálném čase. Podporuje materiály PBR, hierarchie plných scén a efektivní binární balení (GLB).
Nákladová glTF
var scene = new Scene();
scene.Open("model.gltf");
Naložení s možnostmi
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
Ušetření jako glTF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.gltf");
Ušetření jako GLB (binární glTF)
Vytvořit samostatný binární systém. .glb soubor, ukládání s .glb Knihovna odvozuje z rozšíření binární formát glTF:
scene.Save("output.glb");
FBX (Filmbox)
FBX se široce používá při vývoji her a vytváření digitálního obsahu. Aspose.3D FOSS pro .NET podporuje FBx. dovoz a vývoz.Export vytváří binární FBX; kód ASCII FBx existuje ve zdrojové verzi, ale není v této verzi vyzván exportní cestou. FbxSaveOptions třída poskytuje výchozí nastavení.
Naložení FBX
var scene = new Scene();
scene.Open("model.fbx");
Naložení s možnostmi
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
Uložení jako 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šetření pomocí možností
// 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.
Náklad 3MF
var scene = new Scene();
scene.Open("model.3mf");
Naložení s možnostmi
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
Ušetření jako 3MF
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
Ušetření pomocí možností
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
Vstupy/výstupky založené na proudu
Všechny formáty podporují načítání z a ukládání do toků, což je užitečné pro webové služby a cloudovou zpracová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);
Detekce formátu
Knihovna může automaticky detekovat formáty z rozšíření souborů nebo streamování obsahu:
// 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
Konverze šarže
Pro konverzi více souborů, iterujte přes adresář a převedete každý:
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);
}
Srovnání formátu
| Významné vlastnosti | OBJ | STL | glTF | FBX | 3MF |
|---|---|---|---|---|---|
| Materiály | MTL | Ne, ne. | PBR | Ano , ano . | Ano , ano . |
| Hierarchie scén | Ne, ne. | Ne, ne. | Ano , ano . | Ano , ano . | Ano , ano . |
| Animované stuby | Ne, ne. | Ne, ne. | Ano , ano . | Ano , ano . | Ne, ne. |
| Binární režim | Ne, ne. | Ano , ano . | GLB | Ano , ano . | ZIP |
| 3D printing ready | Omezená | Ano , ano . | Ne, ne. | Ne, ne. | Ano , ano . |
| Poskytování prostřednictvím webu | Ne, ne. | Ne, ne. | Ano , ano . | Ne, ne. | Ne, ne. |
Souhrnné informace
3D FOSS pro .NET vám poskytuje jednotné, konzistentní API pro práci se všemi hlavními formáty souborů. Scene, zavolej . Open() pro načtení, volitelnou konfiguraci formátových speciálních možností a volání Save() Detekce formátu, I/O založené na proudu a batch konverze umožňují jednoduchou integraci do jakéhokoli .NET pipeline.
Další informace:
- Odkaz na API – podrobná dokumentace třídy a metody.
- Základní znalosti – praktické články o tom, jak to udělat.
- GitHub - zdrojový kód a sledovač problémů.