Aspose.3D FOSS for .NET támogatja a hét 3D fájlformátumot: OBJ, STL, glTF-t, GLB, FBX, Collada,és a következők: 3MF.Ez a bejegyzés egy gyakorlati, formátumonként bemutatott útmutató arról, hogyan lehet feltölteni és menteni mindegyiket, milyen lehetőségek állnak rendelkezésre, valamint hogy miként konvertizálhatóak közöttük.
Minden példa a következőket használja: Aspose.ThreeD névterület:
using Aspose.ThreeD;
using Aspose.ThreeD.Formats;
NuGet csomag:
dotnet add package Aspose.3D.FOSSOBJ (Wavefront)
Az OBJ egy széles körben támogatott szöveges formátum a mesh geometria számára. Aspose.3D FOSS az OB J fájlok és társaik feltöltése mellett. .mtl anyagi akták.
A OBJ betöltése
var scene = new Scene();
scene.Open("model.obj");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
A lehetőségekkel való betöltés
var opts = new ObjLoadOptions();
// Configure loading behavior as needed
var scene = new Scene();
scene.Open("model.obj", opts);
OBJ-ként mentés
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.obj");
OBJ mentési lehetőségekkel
var opts = new ObjSaveOptions();
scene.Save("output.obj", opts);
STL (sztereolitográfia)
A STL a 3D nyomtatás szabványos formátuma. Nyers triangulált geometria tárolása, anyag és hierarchiák nélkül. Aspose.3D FOSS támogatja mind a bináris, mind az ASCII STl-t.
Töltés STL
var scene = new Scene();
scene.Open("part.stl");
Console.WriteLine("Nodes: " + scene.RootNode.ChildNodes.Count);
STL-ként való mentés
var scene = new Scene();
var sphere = new Entities.Sphere(1);
scene.RootNode.CreateChildNode("SphereNode", sphere);
scene.Save("output.stl");
STL mentési lehetőségekkel
var opts = new StlSaveOptions();
// Control binary mode, scale, and coordinate flipping
scene.Save("output.stl", opts);
STL-térre és vissza utazá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-re. Támogatja a PBR anyagokat, az teljes jelenet hierarchiákat és a hatékony bináris csomagolást (GLB).
Töltés glTF
var scene = new Scene();
scene.Open("model.gltf");
A lehetőségekkel való betöltés
var opts = new GltfLoadOptions();
var scene = new Scene();
scene.Open("model.gltf", opts);
Tárolá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");
A GLB-ként történő megtakarítás (bináris glTF)
Egy önálló bináris generátor előállítása. .glb A fájl, mentse meg egy .glb A könyvtár a bináris glTF formátumot az extensionből következteti:
scene.Save("output.glb");
FBX (Filmbox)
Az FBX széles körben használják a játékfejlesztésben és a digitális tartalom létrehozásában. Aspose.3D FOSS for .NET támogatja az FBx-t. import és export.Az export bináris FBX-t hoz létre; az ASCII FBx export kód létezik a forrásban, de ebben a változatban nem hívja fel azt az export útvonal. FbxSaveOptions az osztály megadja a beállítások alapértelmezett formáját.
FBX betöltés
var scene = new Scene();
scene.Open("model.fbx");
A lehetőségekkel való betöltés
var opts = new FbxLoadOptions();
var scene = new Scene();
scene.Open("model.fbx", opts);
FBX-ként menteni
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");
A megtakarítás lehetőségével
// 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.
Töltés 3MF
var scene = new Scene();
scene.Open("model.3mf");
A lehetőségekkel való betöltés
var opts = new TmfLoadOptions();
var scene = new Scene();
scene.Open("model.3mf", opts);
3MF-os megtakarítás
var scene = new Scene();
var box = new Entities.Box(2, 2, 2);
scene.RootNode.CreateChildNode("BoxNode", box);
scene.Save("output.3mf");
A megtakarítás lehetőségével
var opts = new TmfSaveOptions();
scene.Save("output.3mf", opts);
Áram alapú bemeneti/kibocsátási rendszer
Minden formátum támogatja a streametől történő betöltést és az azt tartalmazó adatokat menteni, ami hasznos a webszolgáltatásokhoz és a felhő feldolgozásához:
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átum felismerése
A könyvtár automatikusan felismerheti a formátumokat az adatszolgáltatásokból vagy a tartalom áramlásától:
// 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
Sorozatkonverzió
Több fájl átalakításához egy-egy címzettben iteráljon és minden egyes számot konvertálja:
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ása
| A tulajdonságok | OBJ | STL | glTF-t | FBX | 3MF |
|---|---|---|---|---|---|
| Az anyagok | MTL | Nem, nem. | PBR | Igen, igen. - Az is jó. | Igen, igen. - Az is jó. |
| Színje hierarchiája | Nem, nem. | Nem, nem. | Igen, igen. - Az is jó. | Igen, igen. - Az is jó. | Igen, igen. - Az is jó. |
| Animációs címezés | Nem, nem. | Nem, nem. | Igen, igen. - Az is jó. | Igen, igen. - Az is jó. | Nem, nem. |
| Bináris üzemmód | Nem, nem. | Igen, igen. - Az is jó. | GLB | Igen, igen. - Az is jó. | ZIP |
| 3D printing ready | Kiszámított | Igen, igen. - Az is jó. | Nem, nem. | Nem, nem. | Igen, igen. - Az is jó. |
| Webes kézbesítés | Nem, nem. | Nem, nem. | Igen, igen. - Az is jó. | Nem, nem. | Nem, nem. |
Összefoglaló:
A 3D FOSS for .NET egyetlen, egységes API-t biztosít minden főbb 3d fájlformátummal való együttműködéshez. Scene,Hívj! Open() a formátum-specifikus opciók betöltésére, ha szükséges konfigurálására és hívásra. Save() A formátum felderítése, a áramlással alapuló bemeneti/kifelé irányuló kommunikáció és a tételkonverzió egyszerűvé teszi az integrációt bármely .NET csővezetékbe.
További információ:
- API hivatkozás – részletes osztály- és módszerdokumentáció.
- Tudásbázis – gyakorlatias, hogyan-hogy cikkek.
- GitHub - forráskód és nyomkövető.